トップページ⇒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)
0514デフォルトの名無しさん2009/08/23(日) 13:37:57
>>513
> とりあえず設計や分析の腕は上がる。

設計というか「コーディングの」だろ?
設計はピュアなOO言語に成れてないといかん。
0515デフォルトの名無しさん2009/08/23(日) 13:38:02
誰かから給料もらいたいんなら素直にJava勉強しろ
0516デフォルトの名無しさん2009/08/23(日) 13:39:04
またここに馬鹿がいた @ >>515。俺の中で

JAVA厨 = 馬鹿

という方程式が成り立っているが、それは未だに健在だ。
0517デフォルトの名無しさん2009/08/23(日) 13:41:12
>>510
>>516がいる言語です
0518デフォルトの名無しさん2009/08/23(日) 13:42:02
Lispの仕事よりもJavaの仕事の方が圧倒的に多いんだから
>>515はJava厨でもなんでもなく正論だよ。
0519デフォルトの名無しさん2009/08/23(日) 13:42:35
マジレスするとLispとC言語が完璧に理解できていればどの言語も大丈夫
のはず。。
0520デフォルトの名無しさん2009/08/23(日) 13:44:19
>>518
PHPやC++の方が仕事が多いわけだが。
Javaなんて死にかけ言語引き合いに出すなよ。
0521デフォルトの名無しさん2009/08/23(日) 13:46:20
またPHPとかw
0522デフォルトの名無しさん2009/08/23(日) 13:49:21
>>521
Web寄りの話な。
ハードに近ければ近いほどCやC++の仕事が多くなる。
Javaなんて糞は居場所がないんだよね。
0523デフォルトの名無しさん2009/08/23(日) 13:52:50
その居場所の無いクソ言語よりもLispの仕事は少ないだろ。
0524デフォルトの名無しさん2009/08/23(日) 13:53:37
>>514
オブジェクト指向的なアプローチの設計もあれば、
関数プログラミング的なアプローチの設計もある。
どちらがよりフィットするかは、問題領域に依る。
この辺は先人が色々言ってるから詳しくは言及しないけど。
0525デフォルトの名無しさん2009/08/23(日) 13:54:09
アンチJava厨の自演だろこれw 鬱陶しいから去れよw

515 名前:デフォルトの名無しさん[sage] 投稿日:2009/08/23(日) 13:38:02

516 名前:デフォルトの名無しさん[sage] 投稿日:2009/08/23(日) 13:39:04

517 名前:デフォルトの名無しさん[sage] 投稿日:2009/08/23(日) 13:41:12
0526デフォルトの名無しさん2009/08/23(日) 13:57:31
>>514
関数型は設計などほとんどいらない
小規模なプロジェクト向きだし、そもそも
関数型言語でそれ以上の規模のプロジェクトの
コーディングをすることが少ないと思うんだけど。

中規模-大規模なプロジェクトならOO言語使うでしょ、普通。
0527デフォルトの名無しさん2009/08/23(日) 13:58:08
デジタル大手ゼネコンの下請けの下請けデジドカにはJavaは向いていますな。
中小デジタル土建屋にはJavaはコストがかかり過ぎてむりですわ。
0528デフォルトの名無しさん2009/08/23(日) 15:48:45
さすがlispスレ。lispのプログラミングと関係ない話題になると異様に盛り上がるぜ。
0529デフォルトの名無しさん2009/08/23(日) 16:16:36
Scheme でデバッグするときってどうするのが簡単だろう?
Gauche だと #?= で debug-print を埋め込むのが簡単だけど、
他の処理系で #?= 相当のを埋め込んだり外したりするのは結構面倒臭い。
何か別の方法を考えた方がいいのかなあ。
0530デフォルトの名無しさん2009/08/23(日) 16:26:14
すいません、ちょっと流れに遅れてしまったんですが、>>480の本って
翻訳的にはどうでしょうか?
0531デフォルトの名無しさん2009/08/23(日) 16:44:21
>>530
日本語として意味がわからないような訳文はほぼないと思う
(ちょっと係り受けが曖昧なところはちらほらあった)
http://hop.timedia.co.jp/show/book/Let%20Over%20Lambda
の正誤表を見ると、 typo の指摘くらいしかないからいい方じゃないかなあ
0532デフォルトの名無しさん2009/08/23(日) 17:59:33
>>531
ありがとうございます。
0533デフォルトの名無しさん2009/08/23(日) 18:07:34
>>529
#?=は確かに便利だけど、gauche のエラーメッセージはもうちょっと
情報が欲しい。正直今のままだと辛いよ。
0534デフォルトの名無しさん2009/08/23(日) 18:22:46
MIT Schemeでいいじゃない。
0535デフォルトの名無しさん2009/08/23(日) 20:46:57
>>526
それも一概に言えないんじゃないかなぁ。
Lisp が使われた有名な案件っていうとむしろ大規模だし。
ただ、少数精鋭でやることを前提としないと Lisp は向かない。
人海戦術でやるようなプロジェクトだとやっぱ Java だろうな。
0536デフォルトの名無しさん2009/08/23(日) 20:51:30
CommonLisp には CLOS があってかなり活用されてるってことも考慮しなきゃな。
だいたい CommonLisp は関数型言語と呼ぶにはあんまり関数型って感じでもないし。
Scheme を先にやっちゃうと CommonLisp って滅茶苦茶フリーダムだと思う。

大人数が強調するには制約があって統制がとれる言語じゃないとね。
0537デフォルトの名無しさん2009/08/23(日) 21:08:11
>>536
> CommonLisp は関数型言語と呼ぶにはあんまり関数型って感じでもないし。

CLのどの辺が「関数型」じゃないかを言ってみな。
お前の「関数型」の認識が外れていることを証明してやるから。
0538デフォルトの名無しさん2009/08/23(日) 21:17:17
>>537
一々頭に血を昇らせるなよ。
>>536はCLがマルチパラダイム言語であると言いたかっただけだろ。
0539デフォルトの名無しさん2009/08/23(日) 21:18:24
>>537
Java
05405362009/08/23(日) 21:39:56
ある程度は関数型的なスタイルが推奨されてもいるみたいだけど、
一般に関数型言語と呼ばれる言語のスタイルと比較すると
破壊的更新を選択肢に含める度合は高い。

CommonLisp の持ち味は関数型ってことよりもマクロだと思うんだよね。
マクロが有用なのは DSL というか勝手なパラダイムを表現できることにあるのは同意してもらえると思う。
つまりマクロは「関数型」というパラダイムを積極的に破る機能とも言える。

言うなれば CommonLisp では関数型的スタイルがデフォルトではあっても、
いくらでも自由な表現が許されていて、しかも機能として一応可能であるというだけでなく
様々なパラダイムを許容する文化的土壌もある。

「思う」ばっかりなので実際にはそうでないところもあるかもしれないけどさ。
CL は非常にフリーダムなのに「関数型」という縛りにこだわってるのはナンセンスじゃないかな。
0541デフォルトの名無しさん2009/08/23(日) 22:05:33
単なる道具だろ、言語なんて。
コンピュータなんて単なる箱だろ、どんなに突き詰めても有限な電気信号でしかないよ。
完璧な観念求めるなら数学やろうよ。
0542デフォルトの名無しさん2009/08/23(日) 22:05:46
>>540
第一段落はSchemeにも当てはまっちゃうからその意見はどうなんだろうと思わざるを得ない。
学術にこだわったのがScheme,実学が良いのだと言うのがCLだって言う言い方の方がまだ納得できる様な気がする。

俺としちゃなんでどっちもいがみ合うんだろうと不思議でしょうがないんだけどね
(emacs vs viみたいであほらしい)
0543デフォルトの名無しさん2009/08/23(日) 22:10:04
例えるならキリスト教とイスラム教でしょう。
どちらも元は同じ。
0544デフォルトの名無しさん2009/08/23(日) 22:14:50
なんだかなー。
>>540を読んで、「本当にこの人マクロを理解できてるのかな?」と疑問に思った。

マクロは実行前にエクスパンドされるコードのエイリアス的な存在。
事実、clコードのコンパイル後にはマクロなどすっかり消えて無くなっている。
関数型のスタイルも破られない。
0545デフォルトの名無しさん2009/08/23(日) 22:17:24
LOLにも書いてあったよな確か。CLは関数型言語ではない。って。
0546デフォルトの名無しさん2009/08/23(日) 22:19:32
>>544
何か誤読してない?
>>540が言ってるのは、一番上のレイヤーの話だと思うんだけど。
副作用のある処理を関数的にラップしたりするのと同じで、あくまでも表現の話。
0547デフォルトの名無しさん2009/08/23(日) 22:20:47
実際のところ、Lisp/Schemeプログラマはどの程度副作用の無いプログラミングを
心がけているの?
0548デフォルトの名無しさん2009/08/23(日) 22:22:26
>>547
可能な限り避けて、使うところはできるだけまとめる。
変なバグに悩まされるの嫌だし。
0549デフォルトの名無しさん2009/08/23(日) 22:22:41
>>547
永続化以外はほとんど使わないな。
0550デフォルトの名無しさん2009/08/23(日) 22:24:39
そもそも、ある言語が「関数型」であるかどうかの判定は、
その言葉の定義によって変わるものなんだから、あまり議論する意味がないんだよね。
例えば、グローバル変数がある言語は関数型ではない、と言ってしまえば、ほとんど
どの言語も関数型ではなくなってしまう。 言語の基本的なプログラミングスタイルで
考慮するならば、cl も scheme も関数型と言えるだろうし。
05515472009/08/23(日) 22:27:05
>>548 >>549
まあそれが非純粋関数型言語における普通のプログラミングだよな。
0552デフォルトの名無しさん2009/08/23(日) 22:33:24
>>537
血の巡りは悪いのに、血がたぎるのだけは早いんだねw
0553デフォルトの名無しさん2009/08/23(日) 22:35:49
>>552 ad hominem で行くことしかできないのかもしれないけど、駄レスは付けないでね
0554デフォルトの名無しさん2009/08/23(日) 22:36:18
>>552
血の巡りが悪いから一箇所に滞るわけで。それが頭だけどね。
0555デフォルトの名無しさん2009/08/23(日) 22:39:14
人身攻撃(ラテン語: ad hominem)とは
0556デフォルトの名無しさん2009/08/23(日) 22:41:43
俺はad hominem より ad aerarium の方が好きだなぁ
0557デフォルトの名無しさん2009/08/23(日) 22:43:43
>>555
もう、子供なんだから。一人じゃ何もできないのね。

ttp://en.wikipedia.org/wiki/Ad_hominem
An ad hominem argument, also known as argumentum ad hominem (Latin: "argument to
the man" or "argument against the man") consists of replying to an argument or
factual claim by attacking or appealing to a characteristic or belief of the
person making the argument or claim, rather than by addressing the substance of
the argument or producing evidence against the claim.
0558デフォルトの名無しさん2009/08/23(日) 22:51:52
>>557
ミイラ取りがミイラになってるぞ
本当にこのスレの住人は罵り合いが好きだな
0559デフォルトの名無しさん2009/08/23(日) 22:53:58
言葉遊びを言葉遊びと認知できない人は (ry
0560デフォルトの名無しさん2009/08/23(日) 22:54:57
set!/setf < 私たちのための争うのはやめて!
0561デフォルトの名無しさん2009/08/23(日) 22:56:07
言葉遊びしたいならVIP行けや
0562デフォルトの名無しさん2009/08/23(日) 22:57:31
>>560
いやお前たちがいないと銀行すら作れないしさ
0563デフォルトの名無しさん2009/08/23(日) 23:10:36
でマクロと関数型の相性はどうなのよ?
0564デフォルトの名無しさん2009/08/23(日) 23:15:25
俺もそこに興味がある。誰か教えて
05655362009/08/23(日) 23:28:12
>>542
一応ことわっておくけど、>>535 も俺で、>>536 はその続きのつもり。
Scheme と CommonLisp の対比をしたいわけじゃなくて、 >>526 に対する反論。
OO ってことを言うのなら CLOS があるし、
Lisp を使わない理由にはならないという主張。

Scheme と CommonLisp で比較すれば関数型的スタイルは程度問題だとは思うよ。
ただその「程度」の差が 一般的な案件に使えるかどうかは影響する。
0566デフォルトの名無しさん2009/08/23(日) 23:38:27
>>563
悪くないというか、むしろ良いと思う
どちらも原則として副作用を嫌うし、結果として単純な合成が効く

ってか小難しいこと考えなくても、
Lispの、おそらく成功と言っていい歴史が
相性の良さを保証していると思う
0567デフォルトの名無しさん2009/08/23(日) 23:40:03
「practical common lisp」 のほうが「on lisp」より難しくない?
0568デフォルトの名無しさん2009/08/23(日) 23:43:21
マクロと関数型の相性って言われても。直交する概念だと思うけど。
S式とマクロの相性とか、Lisp-1とマクロの相性とかならまだしも。
0569デフォルトの名無しさん2009/08/24(月) 00:03:05
>>568
完全に直交する概念なら相性は良いと言えるんじゃないか?
0570デフォルトの名無しさん2009/08/24(月) 00:23:52
>>567
OnLispは読み物としても良くできてるからじゃないの?

全然関係無いけど久しぶりに「対話によるCommonlisp」を読んだらギャグの寒さに泣いた(内容じゃなくてだじゃれ成分に)
0571デフォルトの名無しさん2009/08/24(月) 00:36:27
>>567
お前、どっちも読んだことないだろ?
practical common lisp は初心者向けの本だぞ。
0572デフォルトの名無しさん2009/08/24(月) 00:43:59
最近Lispに興味を持ち勉強中を始めました。
古本屋で「これがLispだ」という本を見つけ、通読したのですが、この先読むとしたら
何が良いでしょうか?今の所はOn Lispを読もうと考えています。
関数型プログラミングはMLで慣れているので、Lisp特有のテクニック等を学びたいと
思っています。良い本があれば教えてください。
0573デフォルトの名無しさん2009/08/24(月) 00:46:06
>>572
> 関数型プログラミングはMLで慣れているので、Lisp特有のテクニック等を学びたいと

じゃマクロだわ。 On Lisp にしとけ。
0574デフォルトの名無しさん2009/08/24(月) 00:47:15
>>572
今手に入る物ならどれ読んでも大丈夫だから全部読んじゃえばいいと思う(もちろん予算が厳しいならしょうがない)
でもLispの本ってあんまり数無いのよ

個人的に実践とOnLispは読むこと自体に喜びがあるよ
あとANSI CommonLispも良いと思う
0575デフォルトの名無しさん2009/08/24(月) 00:57:41
>>573
>>574
ありがとうございます。まずOn Lispを読んでマクロの使い方を学びたいと思います。
今まで括弧の多さから敬遠していましたが、かなり面白い言語ですね。
0576デフォルトの名無しさん2009/08/24(月) 01:01:35
>>570
ギャグの寒さは初めての人のためのLISPのが上だろう。
0577デフォルトの名無しさん2009/08/24(月) 01:07:28
>>575
マクロを使い熟せるようになると面白みが倍以上になる。
俺みたいに子供の頃積み木遊びやLEGOにはまったような人ならなおさらね。
0578デフォルトの名無しさん2009/08/24(月) 01:52:03
金ないなら図書館で読めよ
0579デフォルトの名無しさん2009/08/24(月) 02:24:27
こんな場末のスレでシャドーボクシングするなよw
0580デフォルトの名無しさん2009/08/24(月) 02:48:06
  ∧_∧
  ((.;.;)ω・)=つ≡つ  ぼこぼこにしてやんよ
  (っ ≡つ=つ
  /  #) ババババ
 ( / ̄∪
0581デフォルトの名無しさん2009/08/24(月) 13:47:21
昨晩は皆さんお楽しみだったようですね
0582デフォルトの名無しさん2009/08/24(月) 16:51:07
C言語で書かれた最小サイズのLisp処理系のコードを知りませんか?
純Lisp処理系を書くのに参考にしたいものですから。
0583デフォルトの名無しさん2009/08/24(月) 16:54:57
Cプログラムブックかな
0584デフォルトの名無しさん2009/08/24(月) 17:04:08
>>582
>>10
>□CAMPUS LIsP Lemon version: Cでわずか1000行。
0585デフォルトの名無しさん2009/08/24(月) 17:34:18
ありがとうございました。
>>583
その本、持ってます。Shiroさんも読んだそうですね。
>>584
DLしてみました。

じっくりコードを読んでみます。
0586デフォルトの名無しさん2009/08/24(月) 20:23:39
>>583
懐かしい本だな。
このスレって平均年齢が高いなw
0587デフォルトの名無しさん2009/08/24(月) 23:48:42
>>586
懐古趣味って言われるかもしれないけど
ウインストンのCommon Lisp 対応の
「Lisp(�U)」はわかりやすくて好きだ。
PaulのANSI Common Lispも同様に良いと思うけどね。
歳かな。 
0588デフォルトの名無しさん2009/08/24(月) 23:58:57
>>587
薄緑色の教科書みたいな本ですよね。
Amazonでいい値段になってるw
0589デフォルトの名無しさん2009/08/25(火) 00:03:29
>>587
ウィンストン本良いよね。

自分は第二版の方が好き。粗削りだけど味がある。

Lisp の教科書はこれと Little Schemer で(・∀・)イイ!!
0590デフォルトの名無しさん2009/08/25(火) 00:06:15
>>588
はい、そうです。

間違えた「Lisp(�T)」の方でした。
脳細胞が老化しているのか中西先生の本、
ウインストン本、竹内先生の本を読むとホッとするね。
中西先生は天国で楽しくハッキングしていらっしゃるのかなぁ。
あの世に行ったら中西先生の講義を受講したい。
0591デフォルトの名無しさん2009/08/25(火) 00:08:31
代々受けつがれてきたウィンストン本があるが、後輩に
翻訳がひどく、誤植も多いから読む気がしないと言われて泣いた
0592デフォルトの名無しさん2009/08/25(火) 00:12:02
>>591

確かに翻訳はひどいらしいね。黒川先生のLispの本でも
翻訳のひどさが批判されていたような。
でも、気にならない俺って日本語のセンスがないのかも。
0593デフォルトの名無しさん2009/08/25(火) 00:20:57
「Lispで学ぶ認知心理学1,2,3」も持っているけど
これってどのくらいの値がつくの?
0594デフォルトの名無しさん2009/08/25(火) 01:07:37
今はLisper苫米地先生が出してる本の方がわかりやすいしなあ。>認知心理学
0595デフォルトの名無しさん2009/08/25(火) 02:10:02
>>587
「ウィンストンのLISP」 は初版を 「人口知能」 とセットで読むべき
0596デフォルトの名無しさん2009/08/25(火) 09:18:45
>>593
明倫館あたりの評価はまた違うと思うが、とりあえずアマゾンマケプレを
のぞいてみたら?
0597デフォルトの名無しさん2009/08/25(火) 21:41:13
>>590
竹内先生の金鯛本が復活しますよ。
0598デフォルトの名無しさん2009/08/25(火) 21:47:49
はちょぱきっ

てか「金鯛本」って呼び方初めて聞くんだが
0599デフォルトの名無しさん2009/08/25(火) 22:23:32
でも、通じてるじゃないですかw
0600デフォルトの名無しさん2009/08/25(火) 22:53:53
通じりゃなんでもいいよな
まんまんみてまうまうがおっきおっき
0601デフォルトの名無しさん2009/08/25(火) 23:05:21
以前からの疑問。金鯛本に登場するK先生のモデルって誰?
黒川先生だって説もあるそうだけど。
0602デフォルトの名無しさん2009/08/28(金) 15:40:58
maximaがwiki置かせてくれるサーバーどっかにないか探してるね
0603デフォルトの名無しさん2009/08/28(金) 16:13:47
wikiaとか借りるんじゃダメなの?
0604デフォルトの名無しさん2009/08/28(金) 20:07:55
一般人にとって、黒川と言えば黒川紀章、竹内と言えば竹内均。
0605デフォルトの名無しさん2009/08/28(金) 21:11:11
A君のモデルは俺
0606デフォルトの名無しさん2009/08/28(金) 22:42:15
置かせてくれるサーバよりも犯させてくれる女の方がいい。
っていうか犯させてくれるっておかしいな。
合意だったら犯すって言わないよね。
0607デフォルトの名無しさん2009/08/28(金) 23:09:55
オレにとって女は常にNILを返す関数である。
0608デフォルトの名無しさん2009/08/28(金) 23:11:47
女は煮る? なにそれこわい。
0609デフォルトの名無しさん2009/08/29(土) 00:05:15
もう何年も女と寝てないな
0610デフォルトの名無しさん2009/08/29(土) 00:17:03
もう何年も女を見てないな
0611デフォルトの名無しさん2009/08/29(土) 00:42:12
男が apply で、

女が eval で。
0612デフォルトの名無しさん2009/08/29(土) 01:42:32
NILがTで
TがNILで
0613デフォルトの名無しさん2009/08/29(土) 01:55:42
大人の Y コンビネータ
■ このスレッドは過去ログ倉庫に格納されています