Prologの話をしよう - CROSS2012・言語CROSS
Upcoming SlideShare
Loading in...5
×
 

Prologの話をしよう - CROSS2012・言語CROSS

on

  • 2,606 views

Clojureの話の筈でした

Clojureの話の筈でした

Statistics

Views

Total Views
2,606
Views on SlideShare
1,036
Embed Views
1,570

Actions

Likes
2
Downloads
0
Comments
0

7 Embeds 1,570

http://bugrammer.hateblo.jp 1538
http://feedly.com 19
https://twitter.com 7
http://www.feedspot.com 3
https://www.commafeed.com 1
http://s.deeeki.com 1
http://digg.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Prologの話をしよう - CROSS2012・言語CROSS Presentation Transcript

  • 1. Prologの話をしよう esehara shigeo
  • 2. お前の担当は Clojureじゃな いのかよ
  • 3. あわてるな、まず話を聞け
  • 4. 壇上の皆さん ● いわゆる「関数型言語」と総称される皆さん ○ F#, Haskell ● いわゆる「オブジェクト指向言語」と総称される 皆さん ○ Smalltalk, Delphi
  • 5. 忘れられた、 プログラミング 言語パラタイム
  • 6. 論理型 プログラミング
  • 7. 論理型 プログラミング といえば……
  • 8. Prolog
  • 9. Prologとは ● ある要素と要素の関係を記述するためのプログ ラミング言語 ○ 例: win(goo, choki). ● それらの関係から何が導き出せるかを判別し、 その値を返すことが出来る ○ 例: ?- win(MYHAND, choki). ■ MYHAND = goo
  • 10. じゃんけんとは ● ある要素(この場合は手)に対して、何の手に勝 利しているかの関係性によって勝敗が決定する ゲームである ○ グー→チョキ ○ チョキ→パー ○ パー→グー
  • 11. Prologで雑に書くとこんな感じ win(goo, choki). win(choki, par). win(par, goo).
  • 12. じゃんけんのゲームで勝敗を決 定するということは、じゃんけん の勝利関係の「事実」を宣言す ればいいだけの筈だ
  • 13. 「勝つ」とは ● ある要素(この場合は手)の関係が成り立つ場 合において、何の要素と結びついているかとい うことである ○ プレイヤーの手とCPUの手という組み合わせがルール に書いてあるなら、プレイヤーの勝ち ○ CPUの手とプレイヤーの手という組み合わせがルール に書いてあるなら、CPUの勝ち ○ どっちもないなら引き分け
  • 14. Prologで雑に書くとこんな感じ judge("プレイヤー1の勝利", P1, P2) :- win(P1, P2). judge("プレイヤー2の勝利", P1, P2) :- win(P2, P1). judge("引き分け", _, _). ?- judge(X, goo, par). X = “プレイヤー2の勝利” ?- judge(X, goo, goo). X= “引き分け”
  • 15. ある関係性を「解くためのロジッ ク」を排除出来るならば、その ルール自体については、「推 論」で事足りる
  • 16. Clojureで論理 型プログラミン グが出来るか?
  • 17. core.logic
  • 18. 元ネタ・いわゆる『手習いScheme』などの一連のシリーズの一つ
  • 19. じゃんけんプログラミングの デモンストレーションと ソースリーディング
  • 20. まとめ
  • 21. JavaScriptは、突然復活し、時代の寵児 になった。 関数型というパラタイムも、現在復活しつ つある。 LispはJVMの力を借りて、Clojureとして 復活しつつある。
  • 22. 論理型プログラミングは 可能性があるが、その可 能性はまだ見えない。
  • 23. でもパラタイムがまったく 違う言語を使うと、別の 視点が啓かれるのでとて もいい。
  • 24. Lispもいいけど Prologもね☆