トップページ⇒tech
1001コメント302KB

Lisp Scheme Part27

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/07/27(月) 10:15:31
※ ここはCommon Lisp、SchemeをはじめとするLisp族全般のスレです ※

■過去スレ
 Part26: ttp://pc12.2ch.net/test/read.cgi/tech/1240567959/
 Part25: ttp://pc12.2ch.net/test/read.cgi/tech/1231856193/
 Part24: ttp://pc11.2ch.net/test/read.cgi/tech/1224939205/
 Part23: ttp://pc11.2ch.net/test/read.cgi/tech/1215875388/
 Part22: ttp://pc11.2ch.net/test/read.cgi/tech/1211381920/
 Part21: ttp://pc11.2ch.net/test/read.cgi/tech/1207300697/
 Part20: ttp://pc11.2ch.net/test/read.cgi/tech/1205021786/
 Part19: ttp://pc11.2ch.net/test/read.cgi/tech/1200237296/
 Part18: ttp://pc11.2ch.net/test/read.cgi/tech/1186922295/
 Part17: ttp://pc11.2ch.net/test/read.cgi/tech/1177065699/
 Part16: ttp://pc11.2ch.net/test/read.cgi/tech/1172404795/
 Part15: ttp://pc11.2ch.net/test/read.cgi/tech/1151025773/
 Part14: ttp://pc11.2ch.net/test/read.cgi/tech/1132275726/
 Part13: ttp://pc11.2ch.net/test/read.cgi/tech/1115901841/
 Part12: ttp://pc11.2ch.net/test/read.cgi/tech/1100229366/
 Part11: ttp://pc11.2ch.net/test/read.cgi/tech/1091456033/
 Part10: ttp://pc11.2ch.net/test/read.cgi/tech/1075630259/
 Part09: ttp://pc11.2ch.net/test/read.cgi/tech/1069594582/
 Part08: ttp://pc5.2ch.net/tech/kako/1058/10582/1058263391.html
 Part07: ttp://pc5.2ch.net/tech/kako/1042/10421/1042167213.html
 Part06: ttp://pc3.2ch.net/tech/kako/1031/10315/1031560687.html
 Part05: ttp://pc3.2ch.net/tech/kako/1023/10230/1023091882.html
 Part04: ttp://pc.2ch.net/tech/kako/1016/10162/1016211619.html
 Part03: ttp://pc.2ch.net/tech/kako/1008/10082/1008220265.html
 Part02: ttp://pc.2ch.net/tech/kako/1002/10025/1002584344.html
 Part01: ttp://piza2.2ch.net/tech/kako/987/987169286.html

■テンプレート置き場
 ttp://wiki.fdiary.net/lisp/ (id:guest pass:cl)
0756デフォルトの名無しさん2009/09/05(土) 21:40:17
Lispは速いとか言ってるけど結局、SBCLがshootoutで
別にいい成績じゃないからなあ
あそこで説得力がなくなった
0757デフォルトの名無しさん2009/09/05(土) 21:42:43
SBCLが糞という事実が発覚しただけでは
0758デフォルトの名無しさん2009/09/05(土) 21:46:37
おまえ、どんだけ心狭いんだよ…… >>755
0759デフォルトの名無しさん2009/09/05(土) 21:48:06
>>757
SBCLといえば、Lispの一番使われてる環境だし、
作者のホイトもSBCLと親戚のCMUCL使ってるし
0760デフォルトの名無しさん2009/09/05(土) 21:58:06
Perl の懐の深さはある意味で Lisp を越えてるよ。
構文のカスタマイズもかなり出来るし。
しかし、色々な形に派生しながらも Lisp が Lisp なのは結局のところ「S式」につきる。
Perl は何でもアリだけど、「これが Perl」って言えるような芯に欠けると思うんだよな。
Perl が Perl であるためにはテストが何パーセント通っただとかいった話になるだろうけど、
Lisp は Lisp らしければ Lisp だ。
0761デフォルトの名無しさん2009/09/05(土) 22:03:58
なんでもありなのは、Lispの方だろ
Perlのカスタマイズなんて、Lispのマクロと比べたら屁みたいなもんじゃん
0762デフォルトの名無しさん2009/09/05(土) 22:06:37
Lispの括弧なくすマクロあったよね
0763デフォルトの名無しさん2009/09/05(土) 22:11:33
括弧なしオフサイドルール採用のLispってないの?
0764デフォルトの名無しさん2009/09/05(土) 22:16:16
>>763
直接の答えではないけど、見つかりにくい理由なら

http://practical-scheme.net/wiliki/wiliki.cgi?Lisp%3AS%E5%BC%8F%E3%81%AE%E7%90%86%E7%94%B1

の「ならインデントでも良くね? 」が参考になる。
0765デフォルトの名無しさん2009/09/05(土) 22:16:40
ttp://www.chino-js.com/tech/srfi/srfi-49/srfi-49.html
0766デフォルトの名無しさん2009/09/05(土) 22:31:45
Common Lisp といえばGCL(以前のKCL)を思い浮かべる
私は古いのでしょうか?
0767デフォルトの名無しさん2009/09/05(土) 22:43:12
お前のことなんかどうでもいい。自己紹介ならVIPでやれ。
0768デフォルトの名無しさん2009/09/05(土) 22:44:02
>>764-765
いかにも厨っぽい質問に答えてくれてありがとう

>>765のS式とI式混在の記法は見やすくて良いけど、
構文木と記法の対応という安心感を失ってまで
導入するほどのものではないと初心者の自分でさえ思った
0769デフォルトの名無しさん2009/09/05(土) 23:27:45
>>766
湯淺乙
0770デフォルトの名無しさん2009/09/05(土) 23:29:54
>>766まぁANSI以前だし古いな…
0771デフォルトの名無しさん2009/09/05(土) 23:35:14
意外とおじさんファンは多いと思うぞ。
0772デフォルトの名無しさん2009/09/06(日) 00:03:37
たったいまソース眺めてて、括弧がなくなった想像したら強烈な不安感に襲われてゾッとした。
お前らもやってみろよ。怖いから。
0773デフォルトの名無しさん2009/09/06(日) 00:18:24
えっ? カッコ? あ、そうか。そんなものもあったな。
いやあ、 すっかり忘れておったわ
0774デフォルトの名無しさん2009/09/06(日) 00:35:47
Emacs の設定で括弧の色を薄くするなんて話もあったな
ttp://0xcc.net/misc/permstr.html
0775デフォルトの名無しさん2009/09/06(日) 00:40:12
>>769
湯淺先生はむしろ若者に負けず処理系作ったりして
未踏でスーパークリエイター認定されたりするから困る
0776デフォルトの名無しさん2009/09/06(日) 00:43:04
ショボイ処理系がたくさんあるより
出来のいいのが少しのある方がいいんだけどな
0777デフォルトの名無しさん2009/09/06(日) 01:26:58
Lisperは他の言語での開発者より現役寿命が長そうでいいな。
というか既に高齢k…ゲフンゲフン
0778デフォルトの名無しさん2009/09/06(日) 02:44:06
>>772
常に括弧に囲まれていないと心の安定が保てない?

つ パキシル
0779デフォルトの名無しさん2009/09/06(日) 02:52:13
カッコとは母体でありマトリクスである。

()

すべての生まれる谷。
0780デフォルトの名無しさん2009/09/06(日) 02:55:28
(乙 正三郎)
0781デフォルトの名無しさん2009/09/06(日) 03:32:06
いや、ほんとに不安になったんだよ。
この世に原子間の結合がなくなったような幻覚が見えた。
強い放射線浴びて染色体がずたぼろになった気分。
srfi49が怖い。
0782デフォルトの名無しさん2009/09/06(日) 04:05:48
括弧ヤバイ
0783デフォルトの名無しさん2009/09/06(日) 04:32:13
>>781
(お前 (マジで 病院) 行け)
0784デフォルトの名無しさん2009/09/06(日) 07:52:58
もしもM式が普及してたらLispはどんなだったろう?
型なしのSMLみたいなものか。
0785デフォルトの名無しさん2009/09/06(日) 08:14:08
>>776
同意。
>>728 のProce55ingに限らずSwing含めたjava資産の全てが使える(多分)
clojureには期待してる。
0786デフォルトの名無しさん2009/09/06(日) 08:28:09
>>785
clojureもいいけどQiもいいな
0787デフォルトの名無しさん2009/09/06(日) 09:12:11
>>786
Qiエレガントに見えるんだけど、CL処理系が必要じゃなかったっけ。
schemeに対するarcみたいなもの、であってる?
0788デフォルトの名無しさん2009/09/06(日) 22:38:48
あんま関係ないかもだけど、Lingr復活みたい。
しゃとんはそのままかな。
0789デフォルトの名無しさん2009/09/06(日) 22:46:10
再帰が大好きなんですが、みなさんが今までに書いた再帰を使ったコードを
何でもいいので教えてください。
0790デフォルトの名無しさん2009/09/06(日) 23:00:02
Schemeだと再帰を使わないコードのほうが珍しい
sedやperlで行うようなテキストフィルタでさえ末尾再帰で書く
0791デフォルトの名無しさん2009/09/06(日) 23:00:40
>>789
過去ログ読め。
0792デフォルトの名無しさん2009/09/06(日) 23:01:32
本物の Lisp プログラマはなるべく (明示的には) 再帰を使わない。
0793デフォルトの名無しさん2009/09/06(日) 23:28:12
でもそういう本物気取りの奴って高階とか平気で使っちゃうよね
台無しです
0794デフォルトの名無しさん2009/09/07(月) 00:57:59
Qiって中の人プロジェクトやめて悟り開きに行くとか言ってなかったっけ。
0795デフォルトの名無しさん2009/09/07(月) 01:11:44
Qiって「気」って意味だからそっち方面へ行っても不思議じゃないな。
0796デフォルトの名無しさん2009/09/07(月) 12:11:27
ttp://www.kt.rim.or.jp/~kbk/zakkicho/09/zakkicho0908a.html#D20090801-3
あったあったこれだ。
悟りとか修行とかは俺の妄想だった。

60にもなって成功するかどうかわからないソフトウェアビジネスに
全リソースを突っ込むなんてゆー冒険はできないんよ、って事かな。
インドで何見つけてくるかね。
0797デフォルトの名無しさん2009/09/07(月) 12:23:45
>>794
誰も "悟り開きに行く" なんて言っていない。
英語が読めないからといって脳内補完するのは止めてほしい。

単に「インドで何か見つけて来れればな」としか言っていない。
0798デフォルトの名無しさん2009/09/07(月) 15:06:41
>>797
間抜け
0799デフォルトの名無しさん2009/09/07(月) 16:10:50
>>796
ソフトウェアとその利用にまつわる政治・教育的問題に巻き込まれたくない
60 歳になってなお延々と同じ相手と同じように闘い続けてるなんてゴメンだ
と書いてある
ttp://www.itmedia.co.jp/enterprise/articles/0906/30/news046.html
こーゆーのにウンザリしたんでないかな
0800デフォルトの名無しさん2009/09/07(月) 17:13:15
>>789
萩谷先生の「関数プログラミング」に再帰によることが本質的な問題と
それに対してのSMLに類似した言語でのコードがあったと思うよ。
自然数、ペアノの算術、集合、カタラン数とか美しい再帰コードを見ると
心が癒されるねぇ。
0801デフォルトの名無しさん2009/09/07(月) 18:51:25
そこに並んだ例を見るにただ簡単なものを美しいと思ってるだけじゃないのか
0802デフォルトの名無しさん2009/09/07(月) 20:03:34
>>801
本、読んだことある?
0803デフォルトの名無しさん2009/09/07(月) 20:29:49
Haskellのメモ化によって二重再帰のフィボナッチが最適化されるのを
理解したときは震えた。

その後、実装の最適化戦略をあらかじめ知っていないと適切なコードを書けないと
いうのは何か違うのではないか、と悩み始めている。

∞の記憶容量と実行速度を持っていれば何でも再帰でOKなんだけどね。
0804デフォルトの名無しさん2009/09/07(月) 20:56:54
工学部の人と理学部の人とでは審美眼も違ってくるのかもね。
0805デフォルトの名無しさん2009/09/07(月) 23:41:45
美しいって言うとなんとなく卑屈になりがちだな
自分自身に対しては殆ど使わない言葉だし
0806デフォルトの名無しさん2009/09/08(火) 00:15:03
>>801
ただ簡単なものを美しいと言っていると本も読まずに思ってるだけじゃないのか
0807デフォルトの名無しさん2009/09/08(火) 00:39:16
ものまね鳥をまねる
0808デフォルトの名無しさん2009/09/08(火) 02:07:43
リストのリストを作りたいんだけど、gauche だと引っかかる orz

(define (column m l)
(cond
((= m 0) '())
(else (cons l (column (- m 1) l)))))

gosh> (column 3 '(0 0 0))
(#0=(0 0 0) #0# #0#)

clisp, scheme48, sbcl だと動くんだけど、gauche だとダメ。
なぜに?
0809デフォルトの名無しさん2009/09/08(火) 02:12:41
作れてるよ
0810デフォルトの名無しさん2009/09/08(火) 02:30:28
略記じゃまいか?作られたリストの中身確認しなされ。
0811デフォルトの名無しさん2009/09/08(火) 02:45:59
これだね。
http://srfi.schemers.org/srfi-38/srfi-38.html
むしろ common lisp 勢で gauche みたいな結果表示にならなかったのが意外かも。
08128082009/09/08(火) 03:12:28
>>809
�dクス

gosh> (car (column 3 '(0 0 0)))
(0 0 0)

gosh> (cdr (column 3 '(0 0 0)))
(#0=(0 0 0) #0#)

確かに作れてるっぽい。
略記なんてあるのか、初めて知りました。

((0 0 0) (0 0 0) (0 0 0))
が欲しいのに orz
0813デフォルトの名無しさん2009/09/08(火) 03:35:23
結果自体はどちらでも一緒だよ。
一応 (write (column 3 '(0 0 0)) とすれば ((0 0 0)(0 0 0)(0 0 0)) が印字されるので、
そっちじゃないと見づらいというなら、一度 write 経由で結果を確認すればいい。
もっとも構造共有が明示された表記の方がなにかと都合がいいと個人的には思うけど。
0814デフォルトの名無しさん2009/09/08(火) 06:49:36
CommonLisp だと *print-circle* の値で表示の仕方を制御できるね
0815デフォルトの名無しさん2009/09/08(火) 09:37:18
>>814 それは略記じゃなくて、
(let ((x (list 0 0 0))) (list x x x)) => (#0=(0 0 0) #0# #0#) と
(list (list 0 0 0) (list 0 0 0) (list 0 0 0)) => ((0 0 0) (0 0 0) (0 0 0)) は
writeで見ると同じだけど、構造が違う (わからなかったら絵を描いてみ)。
構造が違うものは違うように表示された方がいい、という方針なんでしょう。
0816デフォルトの名無しさん2009/09/08(火) 17:43:35
(define x '(0 0 0))
(define y (column 3 x))
(set-car! x 9)
ってやってから
(car y)
(cadr y)
(caddr y)
ってやってみるとどうなるかな?
(define (column m l)
(cond
((= m 0) '())
(else (cons (list-copy l) (column (- m 1) l)))))
この場合はどうなるかも試してみ
0817デフォルトの名無しさん2009/09/08(火) 18:52:20
質問。r6rsのhashtable-keysの返すベクタ中の要素って強制的に文字列になるのかな?
某処理系だと
(let ((h (make-eq-hashtable)))
(hashtable-set! h 'key "value")
(hashtable-keys h))

=>#("'key")
ってなるんだがr6の仕様?
hashtable-entriesもしかり。

無知ですんません。
0818デフォルトの名無しさん2009/09/08(火) 19:39:48
>>817
どの処理系か知らないけど、その処理系が変だと思う。
R6RS の hashtable-entries の項目
ttp://www.r6rs.org/final/html/r6rs-lib/r6rs-lib-Z-H-14.html#node_idx_1210
を見ると、挿入したのと同じ要素が返ってくる。
0819デフォルトの名無しさん2009/09/08(火) 20:04:01
>>818
助かりましたサンクス。
0820デフォルトの名無しさん2009/09/09(水) 00:59:43
gaucheって>>814の*print-circle*みたいなのをドンドン取り込んで、
最終的にはCommon Lispになる気がするんだ
0821デフォルトの名無しさん2009/09/09(水) 01:22:44
ご達観恐れ入ります
0822デフォルトの名無しさん2009/09/09(水) 01:36:27
>>820
心配御無用。
今後はClojureからドンドン取り込みます。
0823デフォルトの名無しさん2009/09/09(水) 02:23:38
#' が無ければ...CLのシンボルの棚が一つだったなら...ゴクリ..

by ごっしゃー
0824デフォルトの名無しさん2009/09/09(水) 04:12:09
r6rsでsrfiだそうな
https://code.launchpad.net/~scheme-libraries-team/scheme-libraries/srfi
0825デフォルトの名無しさん2009/09/09(水) 06:28:41
>>823
>#' が無ければ...CLのシンボルの棚が一つだったなら...ゴクリ..
そうなると defmacro じゃハマることが増えるから別のマクロシステムを……
あれ?
0826デフォルトの名無しさん2009/09/09(水) 06:47:19
>>825
... アーッ!
0827デフォルトの名無しさん2009/09/09(水) 07:03:27
>>826
一点減点です
0828デフォルトの名無しさん2009/09/09(水) 07:37:34
>>827
... アッー!
0829デフォルトの名無しさん2009/09/09(水) 09:32:05
ところで俺の言語仕様を見てくれ
こいつをどう思う?

0830デフォルトの名無しさん2009/09/09(水) 09:39:12
すごく・・・矛盾してます・・・
0831デフォルトの名無しさん2009/09/09(水) 09:44:59
いいのかい?
俺は矛盾した仕様でもかまわず実装してしまう男なんだぜ?
0832デフォルトの名無しさん2009/09/09(水) 18:34:31
唐突ですみません。

Lispで双対空間って表現できますか?
双対空間の双対空間をとると元に戻る。
0833デフォルトの名無しさん2009/09/09(水) 19:02:53
ソーシャルテクスト=知の欺瞞事件を連想した
0834デフォルトの名無しさん2009/09/09(水) 19:05:27
>>833
…はぁー?

ソーカルさんのテクスト読んだことないんじゃない?
0835デフォルトの名無しさん2009/09/09(水) 19:19:57
ハンロンの剃刀を連想した
0836デフォルトの名無しさん2009/09/09(水) 19:30:52
>>832
自然な対応がつくというだけで、元に戻るわけでは無いだろう。
0837デフォルトの名無しさん2009/09/09(水) 19:56:08
括弧の向きを逆にすればよろしい
0838デフォルトの名無しさん2009/09/09(水) 19:59:34
ベクトル空間とは異なるもののS式が
プログラムにもデータにもなるというのが
双対ベクトル空間と似たようなものを感じたもので。

純粋に数学の対象としての双対ベクトル空間を
リストを使って具体的に表せないだろうかと
いうのが発端ですが。3次元に限定して。
線形関数の集合ってのがとらえどころがなかったもので。
0839デフォルトの名無しさん2009/09/09(水) 19:59:33

あのさ、君達、

「スクールデイズ」

というアニメを観ればそんなことどうでも良くなるよ
0840デフォルトの名無しさん2009/09/09(水) 20:00:45
良い船
0841デフォルトの名無しさん2009/09/09(水) 20:05:51

と こ ろ で


838 :デフォルトの名無しさん:2009/09/09(水) 19:59:34

839 :デフォルトの名無しさん:2009/09/09(水) 19:59:33


>>839 (@19:59:33) の方が一秒早く投稿しているのにも関わらず
>>838 (@19:59:34) の後に位置している矛盾。

屈辱だ。
0842デフォルトの名無しさん2009/09/09(水) 20:12:23
2ちゃんねるは適当にできているので、たまに起こること。
0843デフォルトの名無しさん2009/09/09(水) 20:37:59
レス番1002とかも稀によくあるな。
0844デフォルトの名無しさん2009/09/09(水) 20:50:53
確定的に明らか
0845デフォルトの名無しさん2009/09/09(水) 21:10:30
直接扱いたいとかは無理だろう、なにせ有限集合じゃないんだし
ML系言語で使われているような型システムを作ってその
箱庭の中で扱うんだったらできるんじゃね?
そういうのはLispで扱うとは言えないだろうけど
0846デフォルトの名無しさん2009/09/09(水) 21:15:58

理想は、型を指定しなくても
指定しても良い(その場合はチェックをする)言語。
0847デフォルトの名無しさん2009/09/09(水) 22:09:30
>>846
つCommon LIsp
0848デフォルトの名無しさん2009/09/09(水) 22:19:22
>>823
CLもSchemeも使っているけど,Lisp-1とLisp-2でそう本質的に変わる訳じゃないし,
何がそんなに嫌なのかわからん.
ちょっと #' とか funcall とか書けばいいだけじゃん.
0849デフォルトの名無しさん2009/09/09(水) 23:03:34
そんなに嫌いな訳じゃないよ。むしろ好き。
ただ、書いてるとLisp-1の方が筆が早いというか、意識がλに集中出来るというか、そんな感じがするだけ。
完全に個人的な問題だね。
0850デフォルトの名無しさん2009/09/09(水) 23:42:02
PLTSchemeのλマークの入った球のアイコン。
赤と青に塗り分けられてるんだけど、あれって球の裏側は
どう塗り分けられているのだろうか。どうでもいいことが気にかかる。
0851デフォルトの名無しさん2009/09/10(木) 00:22:14
裏側なんてない。←結論
0852デフォルトの名無しさん2009/09/10(木) 00:36:50
the なんて、書きたくナイヨ。
なんだ、あの記法。
0853デフォルトの名無しさん2009/09/10(木) 00:57:21
最適化情報はソースの外に書きたいよね。
0854デフォルトの名無しさん2009/09/10(木) 05:38:38
>>838
多分、こんがらがっている。プログラム、データで双対関係が成り立ちそう
だから線型代数で形式化させようと読み取れるけれど、例えば内積どうするの?
<p:プログラム、d:データ>->r:R
となるような、関数<*,*>が必要よ。

あおっているわけじゃないけど、まず線型代数勉強したほうがいいと思うよ。
08558542009/09/10(木) 06:00:01
読み返すとなんとも、いじわるな感じになってしまった。
気にしないでおくれ。
■ このスレッドは過去ログ倉庫に格納されています