[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 20:08 / Filesize : 254 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Lisp Scheme Part26



1 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 19:12:39 ]
※ ここはCommon Lisp、SchemeをはじめとするLisp族全般のスレです ※

■過去スレ
 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)

449 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 22:18:01 ]
shibuya.lisp

450 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 23:16:11 ]
創刊当時の月刊I/Oみたいな雰囲気でLisp/Schemeの記事満載の雑誌が欲しい。
無いもんはゲリラ的に自分たちで作っちゃうもんね〜というノリが懐かしい。
「Schemeで人工知能を」「Lispでロボット犬を制御する」なんてタイトルでさ。


451 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 23:32:19 ]
shibuya.lispで会誌みたいなのをつくって見れば良いのでは
開催時に配布とか、プログラマの人も暇じゃないけど
今のshibuya.lispの開催間隔を見る限り記事一つ二つなら
かけるぐらいの期間だろうから

452 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 23:51:12 ]
>>450
> 創刊当時の月刊I/Oみたいな雰囲気でLisp/Schemeの記事満載の雑誌が欲しい。
月刊I/Oみたいな雰囲気というのがよくわからないけど。
雑誌の意味ってどのくらいあるの? すごくがんばって、季刊誌だろうから、タイムリーさは狙えないよ。

Webのほうがタイムリーさがあるから、Webでいいし。
本という形式にこだわるなら、専門書でいいと思うしなあ。


やっぱり、あれか、ノスタルジーというやつか。

453 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 00:15:26 ]
連載「Lispで書くMultics」

454 名前:デフォルトの名無しさん [2009/06/13(土) 00:33:26 ]
>>452
興味の無い記事、専門外の記事も一緒に付いてくるのが技術雑誌のいいところなんだよ

455 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 00:40:28 ]
Lispの雑誌なんて読んでたら女の子がうざいほど寄ってきて困るだろ。

456 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 00:52:26 ]
>>454
ものすごく質が高ければ買うかもしれないけどなあ。

最近は、定期購読している雑誌はないし、新聞もWebで済ませちゃっているなあ。
本当は紙媒体で読みたいんだけどなあ。

457 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 01:06:38 ]
興味なくても専門外でも、専門技術の記事で埋まってる雑誌なら喜んで買うぜ。
半分広告な雑誌ならノーサンキュー。



458 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 01:22:58 ]
Lisp関連の学会の論文集読め。

459 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 01:48:35 ]
論文集ほど堅くなくってのがミソなんじゃないかな?
コミケとかで売ってくれないかなぁ。

460 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 02:12:56 ]
comp.lang.lispで十分じゃね
しかも雑誌みたいに広告もある

461 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 03:14:28 ]
Oh!MZやOh!Xはいい雑誌だったな
これでレポートが書けるとか言われたもんだ
今はこんな雑誌出せないのかなぁ

462 名前:デフォルトの名無しさん [2009/06/13(土) 08:15:48 ]
最近、BeagleBoard($149)を使ってるんだがGuileが標準で入ってる。

OSはDebian/Ubuntu/Handheld Mojo/Angstrom/Androidのどれでもおk。
エディタはもちろんVim。
消費電力はたったの2W。Atomでも30Wぐらい喰うのを考えると信じられない。
ファンレスなので静か。

dkc1.digikey.com/us/en/mkt/beagleboard.html

知らない人は日経Linuxの7月号を読んでみて。

463 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 10:28:00 ]
副作用がある関数の名前に ! を付けるのはナイスな慣習だと思うよね?
マクロも名前だけでパッと見で分かるようにしたらいいと思うんだ。
だって、関数と違って引数が評価されないかもしれないんだよ。
例えば先頭を大文字にするとかがいいかな。

464 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 10:54:20 ]
季刊 Lisp!

465 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 11:42:37 ]
>>443
quack.el

466 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 12:21:12 ]
活動資金のない渋谷には本は難しいんじゃないかな。鯖とも手弁当なんでしょ。

>>463
年季入ったLisperに言わせると、!や?は発音にこまるからという話も。
「reverse!」「reverseね」「ちがうreverse!」「reverse?」「えっ」「えっ」

467 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 13:19:07 ]
! 「あんせーふ」
? 「ぷれでぃけーと」

reverse! 「りばーすあんせーふ」
reverse? 「りばーすぷれでぃけーと」



468 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 13:36:48 ]
>>466
手弁当のほうが何の制約もなく、無闇に成果を出す必要がなくていいと思うが。

469 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 13:40:10 ]
let* 「れっとあぬす」

470 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 13:42:16 ]
記事すらほとんどないのに
Lispの専門誌なんて出るわけないだろw

471 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 13:50:21 ]
*はスターって読んでる

472 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 13:51:21 ]
話題なんていくらでもある。


473 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 14:02:24 ]
論文みたいにかっちり書かなくてもいいなら記事はあるでしょ。


474 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 14:03:35 ]
記事にしないと話題にならない。

475 名前:デフォルトの名無しさん [2009/06/13(土) 14:56:01 ]
すいません、プログラッミングGaucheで勉強しよと思ってるんですが、
最初の方でEmacsでGaucheを使うっていうとこで
ホームディレクトリに .emacs ファイルを作ったんですができません
↓どこかまちがっていますでしょうか?

(modify-coding-system-alist 'process "gosh" '(utf-8 . utf8))

(setq scheme-program-name "gosh -i")
(autoload 'scheme-mode "cmuscheme" "Major mode for Scheme." t)
(autoload 'run-scheme "cmuscheme" "Run an inferior Scheme process." t)

(defun scheme-other-window ()
"Run shceme on other window"
(interactive)
(switch-to-buffer-other-window
(get-buffer-create "*scheme*"))
(run-scheme scheme-program-name))

(define-key global-map
"\C-c s" 'scheme-other-window)

476 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 14:59:25 ]
何ができませんのか?

477 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 15:04:44 ]
>>476さん
C-c s で、そんなコマンドありませんって言われますorz



478 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 15:14:31 ]
"\C-c s"ならC-c スペース sって意味になるから
多分C-c スペース sと入力すれば動く筈
C-c sにしたけりゃ"\C-c s"を”\C-cs"にしてみて

479 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 15:35:25 ]
>>478さん
ありがとうございます!!
御指摘いただいた箇所をなおしたらできました。
あと、先頭のutf-8のとこもおかしかったみたいでそこがよく分かりません
まじ感謝です。

480 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 16:11:07 ]
>>479
もしWindowsならGaucheboxを使えばいいと思うよ。
sourceforge.net/project/showfiles.php?group_id=25227&package_id=275266&release_id=639668


481 名前:デフォルトの名無しさん [2009/06/13(土) 16:18:01 ]
A*アルゴリズムを使いたいけど実装方法がわかりません。
誰か代りに実装して


482 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 23:23:57 ]
AIMAのサンプル見れ

483 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 04:38:57 ]
(define a '(1 2 3))
と定義して
(list 0 `,@a)
は駄目なんですね。できてもよさそうなんだけどなぁ

484 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 06:33:38 ]
@ってなに?

485 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 07:06:45 ]
`(list 0 ,@a)






父さん・・・酸素欠乏症に罹って・・

486 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 07:13:51 ]
>>483
perl では list(0, @a) とできますが
lisp 系では (apply list 0 a) と書きますね

487 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:05:22 ]
>>486
あ、こういうときapplyか。ありがとう。
でも apply より (list 0 `,@a) の方が直截的で、何がやりたかったか明確じゃないですか。
これを許すとまずい事があるのかな。
apply や funcall 使うのがあんまり美しくないから
common lisp より scheme って人も結構いると思うんだよなぁ。

>>485
それだと (list 0 1 2 3 4) が返ってきちゃうよ。



488 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:17:18 ]
Common Lispでやりたいのか、Schemeでやりたいのか
どういう結果が欲しいか
はっきり書かないと

489 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:26:27 ]
>>488
ごめんなさい、最初に書いてなかった。schemeです。

490 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:36:51 ]
>>487
> でも apply より (list 0 `,@a) の方が直截的で、何がやりたかったか明確じゃないですか。

そうか?

491 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:41:51 ]
(0 1 2 3) がほしかったら`(0 ,@a)だな


492 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:42:29 ]
俺は`(0 ,@a)ってやるな
しかし、applyこんな風に使えるんだな

493 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:50:34 ]
ちなみに
`(0 ,@a) == `(0 . ,a) == (cons 0 a) == (apply list 0 a)
パイソニアンが見たら青筋たてそうだな(笑

494 名前:493 mailto:sage [2009/06/14(日) 12:55:30 ]
あ、見た目が同じだけどリストの構造は違うものになるんだった。すまん。

495 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:17:38 ]
>>491-492
リストが欲しい時はそれが自然ですね。
他の関数の引数に展開したい時は apply で我慢するかぁ。

>>490
違う?要は apply があんま好きじゃないってだけなんだけど。
scheme だと ((car (list + -)) 1 2) ができるって知った時はナイス!って思った。

496 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:26:59 ]
>>494 仲間はずれはapplyで作ったやつ?

497 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 17:07:32 ]
(append '(0) a)



498 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 21:49:52 ]
>>495
perl知らないせいか (list 0 `,@a) じゃ何がやりたかったかさっぱりわからなかった。
aの中身は実行時にしか決定されないからコンパイルするとlistでなくapplyが
呼ばれる。ソースコードに書いていないのに。むしろわかりにくい。

499 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 22:53:09 ]
apply使うと損した気分になったり不愉快になる

500 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 23:12:44 ]
病院へ池

501 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 23:29:34 ]
Applyが嫌いならMicroSoftyなら良いのか?

502 名前:495 mailto:sage [2009/06/14(日) 23:53:15 ]
>>498
俺だって perl 知らないよ。

えー、分かりやすいよ。
apply って大体にして、scheme では変数をリストの先頭に置いて関数を呼び出せるんだから
実質、この用途 (リストに格納されている要素を引数として関数に渡す)
のためだけの関数でしょ?
`( ,@a) で展開できるんだから `,@a も展開できたっていいじゃん。
apply なんて不要になるよ。

503 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 00:15:45 ]
quasiquote をとびこえて更に外側の括弧が表すリストの一部になるというのはダサいだろ。
list の場合だったらともかく、マクロだったらどう展開されるやら想像がつかん。
かと言ってマクロ展開より先にスプライシングするわけにもいかんし。

504 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 00:30:36 ]
>>503
quasiquote の展開はリード時にやんなきゃ駄目じゃない?
とはいえリード時には関数かマクロかわからないしなあ。

確かに、単純な場合にはよさげにみえるけど、
ちょっと入り組んだことになっただけで落とし穴だらけになりそうだね。


505 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 00:41:00 ]
aがリストかどうかもわからん

506 名前:502 mailto:sage [2009/06/15(月) 01:03:52 ]
>>503
あー、マクロ内で使われるとまずいのね。確かに。
apply だったら自動的に関数only だからそこは大丈夫だったのか。
んじゃ、マクロ内では `,@ は自粛でいいじゃんw。駄目?
だって apply も 関数にしか適用できないんだからお相子だって

507 名前:502 mailto:sage [2009/06/15(月) 01:08:33 ]
>>505
それはこれに限らず ,@ 全てが受ける制約じゃん



508 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 01:10:58 ]
まあ、おそらく自分よりはるかに頭の良い人が必要だと思って
残してある機能なわけだから、、、と俺なら考えるかな。

509 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 01:23:33 ]
>>506
そろそろ実装方針を示してはくれんか。

510 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 02:28:17 ]
>>508
paul grahamはこう言ってるよ。

tamo.tdiary.net/20080304.html#p01
> たとえば cond マクロ。こいつには Lisp 1 からこのかた余計な括弧がびっしり付いてきて、
> それを誰も何ともしてこなかった。
> if と cond を押しつぶしてひとつのオペレータにする Arc の技も、
> 誰かがとっくに見つけていたっておかしくなかったのだが、 間違いなくそんな周知の事実はない。

www010.upp.so-net.ne.jp/okshirai/arcll1-j.html
> いくぶん躊躇しながらも、彼は伝統的なLisp
> のletが嫌いだ、なぜならletによって一段インデントが深くなるからだ、と認めた。彼
> が躊躇したのは、letは「正しい」ことだと原則としてはわかっているからだ。この点
> では、「誰にとって正しいの?」と尋ねなくてはならない。なぜなら彼よりも実際頭の
> よいプログラマがいるとは思えないからだ。

>>503
> quasiquote をとびこえて更に外側の括弧が表すリストの一部になるというのはダサいだろ。
一理あるかもしれない。見方によっては荒っぽくて汚い。

>>509
実装方針?quasiquoteをいじればできるのかな。どうすりゃできるだろ

511 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 02:45:01 ]
practical-scheme.net/wiliki/wiliki.cgi?Lisp%3AS%E5%BC%8F%E3%81%AE%E7%90%86%E7%94%B1
このページのapplyの項と同じ話題かな?

512 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 06:18:44 ]
盛り上がってるところ悪いんだけどマクロと関数を混同してるんじゃないかな。
(define (conc-len x) (apply + (map length x)))
の定義のように、applyの最終的な評価の際に使われる引数が式の読み込み時に
わかるという保証はないんだよ。,@じゃこの関数は定義できないでしょ?

513 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 08:45:30 ]
>>512
ごめん、よく分からない。
,@ って実行時に展開されないの?
(define (conc-len x) (+ `,@(map length x))) じゃ駄目?

514 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 08:50:09 ]
quasiquote まわりは全部 syntax だよ

515 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 09:09:28 ]
ttp://www.math.u-toyama.ac.jp/~iwao/Scheme/r5rsj/html/r5rsj.html#SEC39
「コンマアットマークは、リストかベクタの<qqテンプレート>内部に書かなければならない」

516 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 10:08:49 ]
gosh> (car ',@x)
unquote-splicing

517 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 10:54:36 ]
分かりやすいといいつつ続く文章が説明に全くなっていない件について。
自分の脳内が世界の全てって人なんだろうなあ。



518 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 11:41:03 ]
>>517
えー、分かりやすいよ。
lisp って大体にして、言語を拡張できるのが売りなんだから
実質、この用途のためだけの言語でしょ?
perl で展開できるんだから lisp も展開できたっていいじゃん。
perl なんて不要になるよ。

519 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 11:47:44 ]
replのreadの段で,@を自分の思うように仕込めばいいじゃん


520 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 12:12:38 ]
>>518
> 実質、この用途のためだけの言語でしょ?

へー

521 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 14:39:08 ]
>>513
一言で言えばnoです。
マクロと関数の違いについて理解していますか?式の変換と評価の違いがわかりますか?

522 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 15:12:54 ]
backquoteは、
`(,x y ,z)と書くところを、
'(`x y `z)と書ければ、
'(x y z)との字面の対象性上は美しいが、
中を見なければquoteすら効率的に評価できなくなる。O(1)→O(n)

>>513もそうだが、"全体"の構造や評価に影響を与える"部分"があるのはよくない。

523 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 17:37:21 ]
Perlは展開「できる」というか、展開「しちゃう」言語なんだよな。
展開させないために、リファレンスという機能を使わなきゃいけない。

>>522
> "全体"の構造や評価に影響を与える"部分"があるのはよくない
ここ同意。美しくもないし、わかりやすくもないと思う。

そういう展開をさせたいという意志を、applyが一手に引き受けている現状のほうが、
俺には綺麗だし把握しやすい。

524 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 19:11:38 ]
どっちがいいかっていうことには主観的な部分もあるだろうけど、
少なくとも Lisp はこういう理由でこういう選択をした、ってことだ。

525 名前:513 mailto:sage [2009/06/15(月) 20:26:30 ]
>>517
確かに説明になってなかったね。すまん。

>>519
自分の外の括弧に展開させることなんてできないんじゃない?
やっぱやろうとしたら要素に `,@ がある括弧は apply に読み替えるって
動作が必要だから、処理系の実装になっちゃうから無理だな。
しかもそのチェックがコストだろうし。

>>521
,@ が実行時に展開してるように見えたから混同しちゃった。
どうやって ,@ は可変のリストを展開できるんだろうって思ったけど
たぶん apply に変換させてるだけなんだよね?

>>522-523
よくない派が多数か。んじゃやっぱあんまいけてないんだろうな。これはあきらめる。

526 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 20:33:30 ]
お前ずばり、昔来たquote判ってないちゃんだろ
ネタ提供ありがとう

527 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 20:42:35 ]
横レスだけど、quoteとか評価とかってなにげに難しいですよね。
本読んでCPSやYコンビネータはわかった気になったけど、
何時までもquoteや評価のあたりで何かモヤモヤしてる。



528 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 22:30:15 ]
>>525
あきらめるってのが良くわからないけど(まるでこのスレを起点に何かを動かすつもりだったみたいな)、
試しにそういう動作をするマイLispを作って遊んでみたらどう?
で、使ってみたらこんな感じだった、って報告を後日改めてここに書き込むとか。

529 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 01:27:38 ]
>>525
例えば psyntax には pure Scheme な quasiquote の実装があるから
眺めてみるといいんじゃない
ttp://www.cs.indiana.edu/chezscheme/syntax-case/

530 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 03:53:44 ]
>>526
その人とは違うよ。
>>528
そうだね。マイLisp作れたら面白そうだ。
汚いやり方でも少なくとも俺には合ってるからね。
俺がSICP読み終える頃には楽勝で実装できるんだろ、きっと。
>>529
quasiquoteは100行くらいか。
syntax だけじゃ多分無理だけど参考にするわ

531 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 04:23:16 ]
quasiquote って効率を考えずに実装するだけならば外側から順に再帰的に
consとappendに展開するマクロみたいな感じですむからそんなに難しくないと思う。

`@,で展開するのはもはやquasiquoteとは別の文法を導入しているような気が。
別にあっても悪くはないと思うけどもこれだけだと単なるapplyの中置演算子版みたいだし、
特殊な文法用意するのはlispらしくないし別にapplyつかえばいいじゃんということな気がする


532 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 04:49:20 ]
>>530
SICP読破を目指して本ばっかり読んで頭でっかちになるより、ちゃんと手を動かして
コードを書きつつ試行錯誤して正しい理解を身につけてほしいと思う今日この頃。
べつにトンチンカンなことを言ってスレを賑わすのが悪いと言ってるんじゃないだが、
本に書いてある意味論以外に、コードがどういう流れで処理されて実行結果に
たどり着くのかという流れを理解してから物を言った方がいいよ。

それとquasiquoteのオレサマ実装ぐらいSICPなんて読まんでもHaskellの48時間で
書くやつで誰でもできると思うけど。

533 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 06:56:16 ]
SICPは量は多いかもしれないが難解ではないよ。
本当に難しくなるのは、SICPで扱っていない枝葉末節が絡んできた時。

534 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 07:53:23 ]
しかしapplyも変な仕様だよな。
Schemeも同じ仕様なのはどういうわけだろ。
(append (list arg1 ...) args)をas isにすれば、
コンパイル時に余計なコンスセルを消費しないのは確かだけど、
余計なお世話のような気がする。
便利主義の昔のLispはまあいいとしても。

535 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 09:08:38 ]
彼は高校生くらいだろ
気持ちわかるよ
俺も滝に打たれるような気持ちでアセンブラ書いてた時期があったから
これが済んだらスーパープログラマーになってるはず、みたいなw
まあ無駄にはなってないけどさ

536 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 19:15:53 ]
codepad.org/g2dULeuu

537 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 21:16:20 ]
ふつう48時間かかるものが、
枝葉末節を知っているだけで生産性が100倍以上になるわけだ。



538 名前:530 mailto:sage [2009/06/16(火) 22:10:10 ]
>>536
おー、`,@ で展開ができるよ! ありがとう、面白い。>>512もできた。
mzsceme は #%app で関数実行の前に細工ができるのか。
#mzscheme よく分からないけど (require m) は (require "filename") だよね。

539 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 11:53:24 ]
>>538
モジュール名

540 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 12:42:36 ]
悪い意味じゃなくて、Gauche本がSchemeの全て
な人が増えた気がする。


541 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 12:52:39 ]
初学者に読んで貰うような本が出たら、
それしか読んでない人が増えるのは当たり前だわな。
アホですか?(悪い意味ではなく)

542 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 14:18:14 ]
それしか読んでない≠それを全てと考える
なはずなのにそれがイコールで結ばれじゃう単細胞が多いってこと

543 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 14:54:56 ]
maximaのコードを高速化したい
compileでcommon lispに変換はできる
それをschemeで動くようにしてstalinで実行が一番高速なんだろうか

544 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 17:39:23 ]
YpsilonとStalinってどっちが速いの?

545 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 17:39:48 ]
stalinに決まってるだろボユゲ

546 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 17:40:58 ]
>>543
生きている間にコンパイル終らないよ

547 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 18:32:53 ]
stalin自身を高速化したいときはどうすんの



548 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 19:22:23 ]
最適化をしないようなオプションを設定する(本末転倒)

549 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 19:22:41 ]
stallinを動かすマシンを高速化する






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<254KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef