トップページ⇒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)
0705デフォルトの名無しさん2009/09/04(金) 14:54:53
>>704
それは「枯れた」と言うんだ
あまりコネくり回すとperlのように悲惨な状態に陥るぞ
0706デフォルトの名無しさん2009/09/04(金) 16:46:34
>>27

古い話で恐縮。べき集合が面白かったんで素朴集合論の勉強してる。
2^ℵ0 とか無限集合をSchemeで疑似的に扱えないものだろうか?
コンピューターの有限集合に慣れきっているんで選択公理のどこが
問題なのかピンとこない。コンピューターが実無限を扱えると面白い。
0707デフォルトの名無しさん2009/09/04(金) 16:51:16
>>706
色々と直観に反する定理が出て来たりする。例えば、バナッハ・タルスキーのパラドックス:

一つの球体を粉々に砕いて、同じ大きさの球体二つを作ることができる

とか
0708デフォルトの名無しさん2009/09/04(金) 17:06:25
>>706
証明系、数式処理系が扱ってる。> 無限
0709デフォルトの名無しさん2009/09/04(金) 17:15:32
>>708

素のSchemeじゃ無理かな?
ℵ0+ℵ0=ℵ0 とか数式処理のようにパターンマッチングで
与えることはできると思うんだ。
どうしてそれでいいんだ?ってのをSchemeで実験数学みたいにやってみたいんだ。
0710デフォルトの名無しさん2009/09/04(金) 17:23:04
>>706
論理式として閉じてる構造作れば良いんでない?
ただ実態を作る場合、それが本当に妥当かどうかは分からんが。
ハスケルで無かったっけ?そんなの。

数学ってあくまで実際のモデルを"参考"にして抽象的構造作ってるから、
その"参考"から創られる構造から演繹されたものを実際の世界(コンピュータだったらデータ)に還元しても、それが直感的に妥当だとは限らんよ?
>>707の例みたいになるし。混ぜるな危険。
まあ応用数学みたいにおいしいとこだけ啄むのも良いけど。
0711デフォルトの名無しさん2009/09/04(金) 17:25:34
Exact Real Numberの非標準解析版作ればいい。
0712デフォルトの名無しさん2009/09/04(金) 17:25:38
>>710

ありがとう。考えてみるよ。
0713デフォルトの名無しさん2009/09/04(金) 17:59:13
>>706
「選択公理と数学」遊星社
0714デフォルトの名無しさん2009/09/04(金) 18:01:29
>>713

それ志賀先生の30講シリーズでも紹介さてた。
有名な本なんですね。
0715デフォルトの名無しさん2009/09/04(金) 19:14:27
>>693
委員会の作る言語はクソという歴史的必然性があってだな、

ANSI C、Ada、Commo (ピー、ピー、ピー)
0716デフォルトの名無しさん2009/09/04(金) 19:53:31
適度に分裂して適度に収束できた系が生き残るのだ
それが人為的か否かに関わらず
0717デフォルトの名無しさん2009/09/04(金) 21:25:55
Haskellも委員会言語だな
0718デフォルトの名無しさん2009/09/04(金) 21:44:04
ALGOL60も委員会言語だったような
0719デフォルトの名無しさん2009/09/04(金) 21:51:11
どちらもたしかにクソ言語だな
0720デフォルトの名無しさん2009/09/04(金) 21:53:57
Schemeって黒田さんも言っているようにALGOL系の
影響を受けてるんでしょ。
0721デフォルトの名無しさん2009/09/04(金) 22:05:09
歴史が古いと委員会言語に移行してない?初期の C って参考にしたものがあるにせよ
個人が勝手に作った物だし。今はそうでない言語でも、そのうち ANSI ** なんてこと
になってしまうかもしれない。別に ANSI ではなく ISO でも。


委員会言語って、良い所もあるけど「専門家」に引っ掻き回されてグチャグチャにな
ったソフトウェアに近い印象がある(個人的には)。
0722デフォルトの名無しさん2009/09/04(金) 22:09:01
Clojureってカッコがなくてキモイと思った。

(def fact
 (fn [n]
  (cond
   (= n 1) 1
   :else (* n (fact (- n 1))))))
0723デフォルトの名無しさん2009/09/04(金) 23:18:59
>>722
arcに似てるね。
defとかfnとか。
0724デフォルトの名無しさん2009/09/04(金) 23:30:58
ClojureでYコンビネーター

(def Y
 (fn [f]
  ((fn [proc]
   (f (fn [arg] ((proc proc) arg))))
  (fn [proc]
   (f (fn [arg] ((proc proc) arg)))))))

(def fact0
 (fn [f]
  (fn [n]
   (if (zero? n)
    1
    (* n (f (- n 1)))))))

((Y fact0) 5)
0725デフォルトの名無しさん2009/09/04(金) 23:39:11
>>723
どことなく似てる。まだ詳しいことはわからないけど。
0726デフォルトの名無しさん2009/09/04(金) 23:54:00
Clojureは末尾再帰の最適化がないから、Schemerはちょっと脳を切り替えないとね
0727デフォルトの名無しさん2009/09/05(土) 00:04:23
ランタイムがJVMというのはどうなんだろう。
OracleはJavaをどう扱うんだろう。

Scala共々気になる。
0728デフォルトの名無しさん2009/09/05(土) 00:06:39
>>726
そうかも。ただ、clj-processingとかでProce55ingを利用してグラフィックを扱えるんで重宝しそうな予感。
こういう実用的な話はテキストに載ってないけど。
0729デフォルトの名無しさん2009/09/05(土) 01:44:35
>>707
関係ないんだけれど、関数型言語に(有用な)測度入れたりできる?

なんというか、測れるもの入れたほうがわかりやすくなりそうだし、
似ているけど、同値関係がないから違うものと判別されているものを
まとめられたら話が簡単にできると思うんだわ。
0730デフォルトの名無しさん2009/09/05(土) 02:26:22
言語に測度ってなんだよ
S式上に定義された関数を積分とかするのか
0731デフォルトの名無しさん2009/09/05(土) 02:43:28
>>730
離散な集合でも可測空間は作れるし、別にルベーグ積分に限っているわけじゃない。
たとえば、言語における語と関数を要素とする集合をΩとして、
文法規則な情報も入ったσ集合体が作れたら作って、相互にプログラム変換可能を
意味するような測度が入れられたらいいなぁと。
でも、現実的じゃないか。
0732デフォルトの名無しさん2009/09/05(土) 03:26:02
測度というからには完全加法性を使いたいんだろ?
そんなもんが言語の何に対応するんだ。
仮にできたとしてゲーデル関数のへんてこな例が一つできるだけじゃないの。
0733デフォルトの名無しさん2009/09/05(土) 04:14:44
>>700
ttp://www.scheme-reports.org/

興味があるならどうぞ。c.l.sとか色々な場所に流れてたから、
知ってるかもしれないけど。
0734デフォルトの名無しさん2009/09/05(土) 04:29:28
ポールたんの Arc 言語を一見してみた感想:
「Common Lisp に Macro 書くだけで良くね?」
0735デフォルトの名無しさん2009/09/05(土) 05:25:40
数学板か情報板行けばいいのに。その方が詳しい人にコメントもらえると思うよ。
0736デフォルトの名無しさん2009/09/05(土) 05:51:07
>>732
何気にゲーデル関数が可測関数だと読めるようなことを。
それが狙い。へんてこな例じゃないものがあるかもしれないじゃないの。
0737デフォルトの名無しさん2009/09/05(土) 05:53:17
大当たり。
0738デフォルトの名無しさん2009/09/05(土) 06:12:44
>>735
実は、何気にこのスレが最高レベルだよ。
0739デフォルトの名無しさん2009/09/05(土) 06:19:20
Lisp と Scheme を別々のスレに分ければ良かったものの、
一括りにしてしまった為、濃い人間の密度は高くなった。
0740デフォルトの名無しさん2009/09/05(土) 09:43:01
>>715
言語仕様のコロコロ変わるオレオレ言語よりマシだと思うがのぅ。。
0741デフォルトの名無しさん2009/09/05(土) 10:14:59
Common Lisp は専用スレあるよ
0742デフォルトの名無しさん2009/09/05(土) 12:25:28
LOL買ったけど避けるべき言語は具体的に何かって書いてない〜
0743デフォルトの名無しさん2009/09/05(土) 12:28:53
Lisp以外の全てと言いかねない勢いだったような
0744デフォルトの名無しさん2009/09/05(土) 12:42:35
まあ確かにLispより強力なマクロを持った言語って今のところないからな
0745デフォルトの名無しさん2009/09/05(土) 13:43:57
>>740
Rubyの事ですか?
0746デフォルトの名無しさん2009/09/05(土) 14:31:28
>>745
どう考えてもD
0747デフォルトの名無しさん2009/09/05(土) 14:59:28
せっかくぼかしてあるものを具体化しようとする行為は野暮だな
0748デフォルトの名無しさん2009/09/05(土) 15:26:41
python 2.* ディスんのかてめー
0749デフォルトの名無しさん2009/09/05(土) 16:39:43
this?pythonってselfだろ
0750デフォルトの名無しさん2009/09/05(土) 18:49:40
別にぼかしてないと思うが
「Lispのマクロシステムを持たない言語」と明言してるから
Lisp以外の全ての言語だよ
0751デフォルトの名無しさん2009/09/05(土) 18:53:23
M4てどうなの?
よく知らないけど
0752デフォルトの名無しさん2009/09/05(土) 19:01:20
Perl が学ぶべき言語なのがいまひとつ納得できないんだけど何を読むと悟りが開けるんだろう
0753デフォルトの名無しさん2009/09/05(土) 19:11:47
CならK&Rという王道に従うならラクダ本ではないかと。
0754デフォルトの名無しさん2009/09/05(土) 19:18:52
まぁ、Gaucheを使ってるならPerlとの差はCPANの恩恵なんじゃないか。
つまりライブラリーを漁ってみるべきかと。
0755デフォルトの名無しさん2009/09/05(土) 21:28:30
>>752
あれは皮肉なんじゃない?ダグホイト性格悪い。
Haskellもケチョンケチョンだし、HOPの人たちもよく翻訳したよな。心広い。
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
工学部の人と理学部の人とでは審美眼も違ってくるのかもね。
■ このスレッドは過去ログ倉庫に格納されています