f:N←GN はprogramの実装,β:L←GL の左から右に向かうやつはパターンマッチ(fold)に対応 #kansaimath #kansaimath307
2013-09-21 17:31:44Algebraic Data TypeのAlgebraはF-AlgebraのAlgebraらしい #kansaimath #kansaimath307
2013-09-21 17:32:39N={0,1,2...}がよくてN_+ ={1,2,3,...}が駄目な理由 #kansaimath307 #kansaimath . #kansaimath307 #kansaimath .
2013-09-21 17:34:51対応するバナナがlengthになるがN_+だと空列の長さが1になる!だから0は自然数! http://t.co/mWuj6rT76K
2013-09-21 17:37:12私の講義は終わり。講義聞いてた皆さんお疲れ様でした〜。今は懇親会まちです。 #kansaimath #kansaimath307
2013-09-21 17:54:50予想通り実況が banana で埋まっていて嬉しい限りばなな (\!| banana |\!) #kansaimath #kansaimath307
2013-09-21 17:55:43その後の反応とか補足とか
昨日の講義で私の説明が悪かったせいでカン違いさせてしまったのだと思うのですが、実況ついーとでちょっと間違っていた所があったので補足をいくつか。 #kansaimath
2013-09-22 10:07:18後半の、「なぜbananaで再帰できるのか?」で描いたハシゴ形の図式 N~FN~・~・~… ↓ ↓ ↓ ↓ A ←FA←・←・←… の正しい解釈について。次コの形のパス → ↓ ← はn=0の計算手順を表しています。 #kansaimath
2013-09-22 10:08:04そしてn=1の計算手順を表すパスは →→ ↓ ←← になります。以降、nがsuccするごとにパスは右に伸びていきます。 #kansaimath
2013-09-22 10:08:49右に行く矢印がパターマッチに対応すると言いましたが、計算中にパターマッチを行う分だけ矢印を右に進みます。n=0 の場合はすぐ zero に一致するので1回、n=1 の場合はまず succ に一致してその後 zero に一致するので2回という具合です。 #kansaimath
2013-09-22 10:13:26ちなみに、initial algebra の左向きの矢印を、コンストラクタ constructor と呼ぶこともあります。意味合いは Haskell で出てくるそれと(多分)同じです。 #kansaimath
2013-09-22 10:18:36どういうコンストラクタでそのデータが作られたか調べる逆向き矢印がパターンマッチとまぁこういう訳です。 [さっきパターマッチって typo してたかも] #kansaimath
2013-09-22 10:19:24補足。fibのように再帰の引数がn-1だけでなくn-1とn-2の二つあるような関数をbananaで作るには、別の補助関数φ(n)=(fib(n),fib(n+1))を考えてやればよいです。φ(n)はφ(n-1)だけで書けるので、bananaで書けます。 #kansaimath
2013-09-22 17:41:18