アカウント名:
パスワード:
LSIPネタで盛り上がらないのは非常に不思議つまりは一度もLISPをいじったこと無い人間が大多数になっているということか#LISPでPrologを実装できるし、PrologでLISPを実装出来ると知ったときは何とも言えない印象を受けた
かつてAbelson & SussmanでSchemeを、Winston & HornでLispを学んだものですが、McCarthy氏のことはお名前くらいしか覚えてないです。
LISPのLISP実装とかPrologのLISP実装とかはよく本にも載ってて見た覚えがあるけど、LISPをPrologで実装というのは初めて聞いた。ググったがこんな感じになるのか。http://web.student.tuwien.ac.at/~e0225855/lisprolog/lisprolog.html [tuwien.ac.at]
Y:
(define Y (lambda (g) (((lambda (f) (lambda () (g (f f)))) (lambda (f) (lambda () (g (f f)))))))) (define fib (lambda (h) (lambda (f s n) (if (= 0 n) s ((h) (+ f s) f (- n 1)))))) ((Y fib) 1 0 10);Value: 55
SKI:
(define S (lambda (x) (lambda (y) (lambda (z) ((x z) (y z))))))(define K (lambda (x) (lambda (y) x)))(define I (lambda (x) x)) (((S K) K) 1);Value: 1
SKI のほうは、
漏れも、そのひとつ覚えをば
(defun factorial (n) (cond ((zerop n) 1) (t (* n (factirial (sub1 n))))))
(defun sub1 (x) (- x 1))
あと、アッカーマン関数ね それから忘れちゃならねーtak [wikipedia.org]だな
lispどころかコードも書けない人間が大多数になってると俺は疑ってる。
それでもCとかRubyネタならまだワナビーや野次馬が食いつくんだけど、lispネタだと地味過ぎてそういうのも湧かない。
コードを書けないから何なんだろう...
まぁ、落ち着いて。コーヒーでもいかが?おや、お茶(T)がお好みですか。(超定番ネタ)
どうもlispで「コードを書く」という表現がなんかアレなんだろうなと思います。
たくさん定義されてる関数をまとめてコードというかどうかとかはあるんでしょうが、やっぱ関数を書くとか、定義するとか「でふん」するとか、しとくとかですか。 コードを書くという表現がピタっとこないの自分だけでしょうか。 デファインしとくとかいうとキザっぽそうなので、でふんとか、でっふんとかね。 c言語だとmain必ずあるからコード書くという表現がピタっとするんですね。
だから嫌われるんだな、きっと(笑
コード書けない人間がプログラミング言語のストーリーにしゃしゃり出てくりゃそりゃ嫌われますがな。
先日のスクエニのプロジェクト管理のストーリーとか、お客さんの脊髄反射ばかりで酷いもんだ。
LISP、書けないっす。
元々、数値計算の方に興味があったというのもあるんですが、Prologの授業を受けたときに「これを覚えればできること」がまったくイメージできなかったんですよね。
今思うと人工知能の話に何故か興味のアンテナが反応してくれなかったんだと思います。
手続き型言語が普通以上のレベルなら、2時間も学べば使えるようになるよ。最低限覚えなきゃならないことは、
データの表現: ATOM、CONS、NIL、LIST(CONSの特殊な形)基本5函数(CAR、CDR、CONS、ATOM、EQ)+若干の特殊な記法(COND、QUOTE、LABEL、LAMBDA、FUNARG)評価のルール: EVALQUOTE(トップレベル形式)、EVAL(変数と、式の評価)、APPLY(函数の呼び出し)、scopeとextent
こんなもんだからな。実は、そこから先が長いんだ。(例えば、LABELとLAMBDAを組み合わせて書くのは面倒だから、DEFUNという特殊形式があってな...本一冊分ぐらい続く...)
(pack (reverse (unpack 'abcdefg)))
これでかなり感動しました おなじことを他の言語でやったら何行(難行)だろうなと
(unpack 'abc) -> (a b c)(reverse '(a b c)) -> (c b a)(pack '(c b a)) -> cba
schemeしか使えないもんでどうにも
emacs-lispは適当にいじってるが使えるうちに入らないな
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
にわかな奴ほど語りたがる -- あるハッカー
LISPネタが無いのが不思議 (スコア:0)
LSIPネタで盛り上がらないのは非常に不思議
つまりは一度もLISPをいじったこと無い人間が大多数になっているということか
#LISPでPrologを実装できるし、PrologでLISPを実装出来ると知ったときは何とも言えない印象を受けた
Re:LISPネタが無いのが不思議 (スコア:1)
かつてAbelson & SussmanでSchemeを、Winston & HornでLispを学んだものですが、McCarthy氏のことはお名前くらいしか覚えてないです。
Re:LISPネタが無いのが不思議 (スコア:1)
LISPのLISP実装とかPrologのLISP実装とかはよく本にも載ってて見た覚えがあるけど、LISPをPrologで実装というのは初めて聞いた。
ググったがこんな感じになるのか。
http://web.student.tuwien.ac.at/~e0225855/lisprolog/lisprolog.html [tuwien.ac.at]
バカのひとつおぼえ (スコア:0)
Y:
SKI:
SKI のほうは、
Re: (スコア:0)
漏れも、そのひとつ覚えをば
(defun factorial (n)
(cond ((zerop n) 1)
(t (* n (factirial (sub1 n))))))
(defun sub1 (x) (- x 1))
あと、アッカーマン関数ね それから忘れちゃならねーtak [wikipedia.org]だな
Re: (スコア:0)
lispどころかコードも書けない人間が大多数になってると俺は疑ってる。
それでもCとかRubyネタならまだワナビーや野次馬が食いつくんだけど、lispネタだと地味過ぎてそういうのも湧かない。
Re: (スコア:0)
コードを書けないから何なんだろう...
Re:LISPネタが無いのが不思議 (スコア:1)
まぁ、落ち着いて。コーヒーでもいかが?
おや、お茶(T)がお好みですか。
(超定番ネタ)
マクロの基本は検索置換(by y.mikome)
Re:LISPネタが無いのが不思議 (スコア:1)
''Foodp?''
''T!''
のやりとりはTHE JARGON FILEで学びました。:)
Re: (スコア:0)
どうもlispで「コードを書く」という表現がなんかアレなんだろうな
と思います。
たくさん定義されてる関数をまとめてコードというかどうかとかは
あるんでしょうが、やっぱ関数を書くとか、定義するとか「でふん」
するとか、しとくとかですか。 コードを書くという表現がピタっと
こないの自分だけでしょうか。 デファインしとくとかいうとキザっ
ぽそうなので、でふんとか、でっふんとかね。 c言語だとmain必ず
あるからコード書くという表現がピタっとするんですね。
だから嫌われるんだな、きっと(笑
Re: (スコア:0)
コード書けない人間がプログラミング言語のストーリーにしゃしゃり出てくりゃそりゃ嫌われますがな。
先日のスクエニのプロジェクト管理のストーリーとか、お客さんの脊髄反射ばかりで酷いもんだ。
Re: (スコア:0)
LISP、書けないっす。
元々、数値計算の方に興味があったというのもあるんですが、
Prologの授業を受けたときに「これを覚えればできること」が
まったくイメージできなかったんですよね。
今思うと人工知能の話に何故か興味のアンテナが反応して
くれなかったんだと思います。
Re: (スコア:0)
手続き型言語が普通以上のレベルなら、2時間も学べば使えるようになるよ。
最低限覚えなきゃならないことは、
データの表現: ATOM、CONS、NIL、LIST(CONSの特殊な形)
基本5函数(CAR、CDR、CONS、ATOM、EQ)+若干の特殊な記法(COND、QUOTE、LABEL、LAMBDA、FUNARG)
評価のルール: EVALQUOTE(トップレベル形式)、EVAL(変数と、式の評価)、APPLY(函数の呼び出し)、scopeとextent
こんなもんだからな。実は、そこから先が長いんだ。
(例えば、LABELとLAMBDAを組み合わせて書くのは面倒だから、DEFUNという特殊形式があってな...
本一冊分ぐらい続く...)
Re: (スコア:0)
(pack (reverse (unpack 'abcdefg)))
これでかなり感動しました おなじことを他の言語でやったら何行(難行)だろうなと
(unpack 'abc) -> (a b c)
(reverse '(a b c)) -> (c b a)
(pack '(c b a)) -> cba
Re: (スコア:0)
schemeしか使えないもんでどうにも
emacs-lispは適当にいじってるが使えるうちに入らないな