すごいスライド(Lazy K 紹介)

Post on 30-Jun-2015

585 views 4 download

description

Web: http://nna774.net/reikai01/

Transcript of すごいスライド(Lazy K 紹介)

めっちゃすごいスライド

博士の異常な愛情

または私は如何にして心配するのを止めて参照透明を愛するようになったか

KMC 1回 nona7

etc...

KMC での活動プライベートクラウド計画 - 提督

Coq勉強会RICOH and Java Developer Challenge Plus 2013NchippakuTwitterTumblrKanColle

KMCアドベントカレンダー2013

このスライド

reveal.js とかいうすごいやつ

html で適当に書いてひな形に放り込めばかっこいいスライドになる

でも

生のHTML

書きたくない!!!1111

閉じタグの対応とか考えるのヤダー

???「大丈夫よ, 司令官! S式があるじゃない!」

竹内郁雄

いまRubyがブームだが、Rubyは要するにカッコのないLisp。XMLもぶ厚いカッコのあるLisp。

というわけでS式からHTML に変換するの最近作りました.htsexp(仮)

まだ未発覚のバグ潜んでそうとりあえずこのスライドはコンパイルできた

既存のものもあったけど不満点あったので作ってみた

かんわきゅうだい

楽しいLazyK 入門

はじめに

このスライドは難解プログラミング言語勉強会の宣伝です.あんまり詳しい話は今回はパス言語の紹介ぐらいだけ

詳しくは難解~に参加しましょう!

What is LazyK?

組み込み関数は3つだけI = λx. xK = λxy. xS = λxyz. x z (y z)

I コンビネータI x = xλx. x

引数を一つ取ってその引数を返す関数とったものをそのまま返すだけIdentity Combinator

実は SKK == I が成り立つのでなくてもいい

K コンビネータK x y = xλxy. x

2引数をとって1つ目の引数を返す関数「引数を一つ取って(xとする),「引数を一つ取ってx を返す関数」を返す関数」と言ってもいい-- ややこしいなら一旦置いといていいかも

Constant CombinatorKonstant(独)-- 今回調べてて知った

定数関数

S コンビネータS x y z = x z (y z)λxyz. x z (y z)

3つ引数を取って, 1つ目と2つ目に3つ目を適用する関数Sharing Combinator第三引数をシェアしてる感じ

この3つと括弧だけで書く(コンビネータスタイルの場合は)

めっちゃ簡単!!

Brainfu*k とか命令数多すぎ!!

「これらの組み合わせだけでどうやってプログラム書くの.組み合わせても謎の関数しかできないですよね 」

入力として受け取ったものを,あなたが書いたプログラム- "謎の関数" - に引数として渡して

出てきたものが出力です.正確には入力として渡された文字列がチャーチ数のリストとしてエンコードされてそれが渡されて==

-- 詳しくは難解~で!!

サンプルコードecho

I

サンプルコードエラトステネスのふるい

K(SII(S(K(S(S(K(SII(S(S(KS)(S(K(S(KS)))(S(K(S(S(KS)(SS(S(S(KS)K))(KK)))))(S(S(KS)(S(KK)(S(KS)(S(S(KS)(S(KK)(S(KS)(S(S(KS)(S(KK)(SII)))(K(SI(KK)))))))(K(S(K(S(S(KS)(S(K(SI))(S(KK)(S(K(S(S(KS)K)(S(S(KS)K)I)(S(SII)I(S(S(KS)K)I)(S(S(KS)K)))))(SI(K(KI)))))))))(S(KK)K)))))))(K(S(KK)(S(SI(K(S(S(S(S(SSK(SI(K(KI))))(K(S(S(KS)K)I(S(S(KS)K)(S(S(KS)K)I))(S(K(S(SI(K(KI)))))K)(KK))))(KK))(S(S(KS)(S(K(SI))(S(KK)(S(K(S(S(KS)K)))(SI(KK))))))(K(K(KI)))))(S(S(KS)(S(K(SI))(SS(SI)(KK))))(S(KK)(S(K(S(S(KS)K)))(SI(K(KI)))))))))(K(K(KI))))))))))(K(KI)))))(SI(KK)))))(S(K(S(K(S(K(S(SI(K(S(K(S(S(KS)K)I))(S(SII)I(S(S(KS)K)I)))))))K))))(S(S(KS)(S(KK)(SII)))(K(SI(K(KI)))))))(SII(S(K(S(S(KS)(S(K(S(S(SI(KK))(KI))))(SS(S(S(KS)(S(KK)(S(KS)(S(K(SI))K)))))(KK))))))(S(S(KS)(S(K(S(KS)))(S(K(S(KK)))(S(S(KS)(S(KK)(SII)))(K(S(S(KS)K)))))))(K(S(S(KS)

まとめ難解プログラミング勉強会に参加しよう!ゆるふわですくわしくやりますいろいろ今回は説明すっ飛ばした

参照透明な海に潜りましょう.ものまね鳥をまねましょう

ありがとうございましたなにか質問など

参考文献関数型λカ娘一巻Lazy K 公式サイト

ラムダ計算入門Lazy K 2013年4月15日 (月) 08:39; Fumiexcel による版Lazy K 入門