ちょっと草植えときますね型言語で近況報告しますwWWwwwwパート2
お疲れさまです(本当の意味で)。
以前、「ちょっと草植えときますね型言語で近況報告しますwWWwwww」という記事を書きました。
で、最近の私もやっぱりこんな感じです。
_, ._ ( ・ω・) んも〜 ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@) wvwwWWwWWWwvWwwwwWWwWWWwWW WWwWWWWWwWWWWWWwWWWWWWWwW wwwwwwwwwwwwWWWwWWWWWwWWWW WWWwWWWWWWWWWwWWWWWWWWWWW WwWWWWWWWWWWWWWWWWWwWWWWW WWWWWWWwWWWWWWWWWWWWWWWWW wwwwwwwwwwwwwwwwwwWwwwwwWWwwww WWWwwww
以前よりもコードが短くなりましたね。
というか、単に前のコードに”無駄”があったのでそれを無くしただけです。
で、もっと短く書けないものかと思いまして、
草でチャーチ数のPRED関数を実装したら、ひょっとして短くできるんじゃなかろうかとか
しょうもないことを思いついちゃったので、息抜きを兼ねてちょっくらチャレンジしてみたわけです。
草なPRED関数を使ってみたバージョン
_, ._ ( ・ω・) んも〜 ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@) wvwwwWWwwwWWwvwwWWWWwwvwwww wwWWWWWwwWWWWWwwWWWWWwwW wwWwwwwwwwwwwvwwWWwWWWwvwwW WwWWWwWWWWwWWWWWwvwwWwwvW WWWwwwwwwwWwwwwwwwWwwwwwwwW WWWwwwwwWwwwwwwWWWwwwwwwwWW WWWWWwwwwwwwwwWwwWwwwwwwWww wwwWWWWWWWWWWWWWWWWWwwwww wwwwwwwwwwwwwwWWwWwwwwwwwwww wwwwwwwwwwwwWWWWWWWWwwwWwwW WWWWWWWwwwwwWwwWWWWWWWWWW WWWWWWWWWWWWWWwwwwwwwwwwww wwwwwwwwwwwwwWwwwwwwWWwwwwwWW Wwwww
えっと・・・短くってゆーか、むしろ倍増? 比較するまでもなく明らかに長くなっていますね(爆
もうちょっと頑張れば、まだ短くできる余地はあるにはあるのですが、
そもそもPRED関数の定義が思いのほか長くなってしまったので、このアプローチでは駄目だな、と。
上記のコードでは、なにをやっているかさっぱりわからないと思うので、
コメントで簡単な解説をつけてみました。
草なPRED関数を使ってみたバージョン解説
wv :id wwwWWwwwWWwv :λf.λg.λh.h(g f) = F*B wwWWWWwwv :λx.λy.x = TRUE wwwwwwWWWWWwwWWWWWwwWWWWWwwWwwWwwwwwwwwwwv :λa.λb.λc.λd.λe.λf.d(b e)(c f)a = sp wwWWwWWWwv :λf.λx.f (f x) cn2 wwWWwWWWwWWWWwWWWWWwv :λf.λx.f(f(f (f x))) cn4 wwWwwv :λm.λn. n m = POdu WWWWwwwwwww :sp id Wwwwwwww :sp id F*B Wwwwwwww :sp id F*B TRUE = PRED WWWWwwwww : POdu cn4 Wwwwwww : Podu cn4 cn4 = cn256 WWWwwwwwww : PRED cn4 = cn3 WWWWWWWwwwwwwwww : POdu cn2 Www : POdu cn2 cn3 = cn8 Wwwwwww : cn8 PRED Wwwwww :(cn8 PRED) cn256 = cn248 WWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwww : id Succ WWw :cn248 Succ = +248 Wwwwwwwwwwwwwwwwwwwwwww : +248 du = o WWWWWWWWwww :cn3 Succ = +3 Www : o + 3 = r WWWWWWWWwwwww :cn8 Succ = +8 Www : r + 8 = z WWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwww : id Out Wwwwwww :Out o WWwwwww :Out r WWWwwww :Out z
#C#やF#、Code Contractsなどの記事は時間と心に余裕ができたら書きたいと思います。
#いやしかし、ラムダ計算って本当に面白いですね。あはははは。