圏論における再帰的関数(関西すうがく徒のつどい第4回) #kansaimath

(\!| ばなな |\!)
5
前へ 1 ・・ 6 7
アイコンが見えない人 @invisible_qq

f:N←GN はprogramの実装β:L←GL の左から右に向かうやつはパターンマッチ(fold)に対応 #kansaimath #kansaimath307

2013-09-21 17:31:44
ぴあのん @piano2683

Haskellerはできるだけバナナを使うらしい #Banana #kansaimath #kansaimath307

2013-09-21 17:32:00
アイコンが見えない人 @invisible_qq

Algebraic Data TypeのAlgebraはF-AlgebraのAlgebraらしい #kansaimath #kansaimath307

2013-09-21 17:32:39
end.K @end313124

Haskellerはバナナの力でコードを短くするらしい #kansaimath307 #kansaimath

2013-09-21 17:33:02
end.K @end313124

N={0,1,2...}がよくてN_+ ={1,2,3,...}が駄目な理由 #kansaimath307 #kansaimath . #kansaimath307 #kansaimath .

2013-09-21 17:34:51
end.K @end313124

対応するバナナがlengthになるがN_+だと空列の長さが1になる!だから0は自然数! http://t.co/mWuj6rT76K

2013-09-21 17:37:12
拡大
end.K @end313124

これにて本日の実況を終わります.ありがとうございました. #kansaimath

2013-09-21 17:40:15
Tomoki UDA @t_uda

私の講義は終わり。講義聞いてた皆さんお疲れ様でした〜。今は懇親会まちです。 #kansaimath #kansaimath307

2013-09-21 17:54:50
Tomoki UDA @t_uda

予想通り実況が banana で埋まっていて嬉しい限りばなな (\!| banana |\!) #kansaimath #kansaimath307

2013-09-21 17:55:43

その後の反応とか補足とか

たちうさだった @tatyusa419

Haskellってほんとにおもしろい言語だなー

2013-09-21 22:06:51
Tomoki UDA @t_uda

昨日の講義で私の説明が悪かったせいでカン違いさせてしまったのだと思うのですが、実況ついーとでちょっと間違っていた所があったので補足をいくつか。 #kansaimath

2013-09-22 10:07:18
Tomoki UDA @t_uda

後半の、「なぜbananaで再帰できるのか?」で描いたハシゴ形の図式 N~FN~・~・~… ↓  ↓ ↓ ↓ A ←FA←・←・←… の正しい解釈について。次コの形のパス →  ↓ ← はn=0の計算手順を表しています。 #kansaimath

2013-09-22 10:08:04
Tomoki UDA @t_uda

そしてn=1の計算手順を表すパスは →→   ↓ ←← になります。以降、nがsuccするごとにパスは右に伸びていきます。 #kansaimath

2013-09-22 10:08:49
Tomoki UDA @t_uda

右に行く矢印がパターマッチに対応すると言いましたが、計算中にパターマッチを行う分だけ矢印を右に進みます。n=0 の場合はすぐ zero に一致するので1回、n=1 の場合はまず succ に一致してその後 zero に一致するので2回という具合です。 #kansaimath

2013-09-22 10:13:26
Tomoki UDA @t_uda

ちなみに、initial algebra の左向きの矢印を、コンストラクタ constructor と呼ぶこともあります。意味合いは Haskell で出てくるそれと(多分)同じです。 #kansaimath

2013-09-22 10:18:36
Tomoki UDA @t_uda

どういうコンストラクタでそのデータが作られたか調べる逆向き矢印がパターンマッチとまぁこういう訳です。 [さっきパターマッチって typo してたかも] #kansaimath

2013-09-22 10:19:24
Tomoki UDA @t_uda

補足。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
前へ 1 ・・ 6 7