1〜終まで読む 100〜終まで読む
Lisp Scheme Part37 (268) TOP カテ一覧 スレ一覧 2ch元 削除依頼
画像処理 その14 (120)
【普通のやつらの】 Arc Language 0 【上を行け】 (260)
スレ立てるまでもない質問はここで 129匹目 (952)
【上流社会】MSDNサブスクリプション総合【最先端】 (652)
★★Java質問・相談スレッド165★★ (120)
C言語なら俺に聞け(入門編)Part 121 (201)

Lisp Scheme Part37


1 :2013/09/01 〜 最終レス :2013/10/27
Common Lisp、SchemeをはじめとするLisp族全般のスレです
■前スレ
Lisp Scheme Part36
http://toro.2ch.net/test/read.cgi/tech/1363171842/
■テンプレ
ttp://wiki.fdiary.net/lisp/
■関連スレ
【入門】Common Lisp その10【質問よろず】
ttp://toro.2ch.net/test/read.cgi/tech/1361341876/
【Scheme】Schemeインタプリタ Mosh Part1【Lisp】
ttp://toro.2ch.net/test/read.cgi/tech/1272469779/
【Lisp】プログラミング言語 Clojure #2【JVM】
ttp://toro.2ch.net/test/read.cgi/tech/1318498898/
【魔法】リリカル☆Lisp【言語】
ttp://toro.2ch.net/test/read.cgi/tech/1183396621/

2 :
いままで日本ではトンコツラーメンは100%安全ですって言ってたのに
こうやって一度食中毒事件が発生してしまったので、もうこれ以上日本民族にラーメンを扱うのは無理。
ましてや日本は地震大国で、日本列島には40億年前の活断層が張り巡らされているのだ
食中毒事件を発生するのを想定せずにのんきにラーメン作りしていたラーメン屋の危機意識の無さが敗戦した日本軍にそっくりだ
これからはいままでのラーメンに対する安全神話を真摯に反省し、2030年までにラーメンゼロを目標に定めた政府ガバナンスを早急に作成して
足りない分は内向きガラパゴス思考な一国主義に陥らぬよう国際的視野に立脚し、特に東アジアに貢献すべく韓国サムゲタンを食べるべき!!

3 :
おつ

4 :
「ステマ」等の絶対にありえない陰謀論を連呼する
頭がおかしい人の相手は誰もしたくない
そのために
>>2
みたいな政治の話題は、ほとんどの掲示板で禁止になっています

5 :
>>4
フジテレビの韓流ステマやってる
チョンの地下秘密組織は実在するし
証拠もある
311の人工地震もチョンの地下秘密組織がやったんだけど

6 :
>311の人工地震もチョンの地下秘密組織がやったんだけど
流石にこれは駄目だろwwwww
XFileが真実とか言っちゃうくらい駄目
もちろんLispのマクロは必須だ(と強引にスレに持ち込む)

7 :
そうか。

8 :
動的型付け、メタオブジェクトプロトコル、REPL、継続、イントロスペクション、これらはもう、レベルは兎も角、他の言語にも取り込まれてしまっている。最後の最後にLispに残る優位性があるとするならそれはマクロだね、多分。

9 :
試しに、したらば
に移動したらネトウヨが来なくなるのかには
興味ある

10 :
継続って他の言語に取り込まれてるか?

11 :
Rubyちゃん

12 :
call-ccそのものは無いけど、クロージャ渡しは普通になってる

13 :
>>4
あなたがそういう方だったとは思いませんでした。
ひょっとするとラーメン村住人なのではないですか?

14 :
継続とクロージャ渡しは違う気がする

15 :
>>8
Perl6 は抽象構文木をコンパイル時に弄る機能が入るらしい。
http://perlcabal.org/syn/S06.html#Macros
>>10-12
Rhino は JavaScript の処理系だけど、 Continuation クラスがある。
http://wiki.apache.org/cocoon/RhinoWithContinuations#Continuations
>>14
CPS 変換した世界で考えれば同じだよ。
実際、フォーマルな意味論ではそうなってる。
理屈の上では表記方法の問題に過ぎない。
って、どこかで見たんだけどどこで見たんだったか忘れた。

16 :
何年か前にLittle Schemer読んで、Seasonedの最初の方で投げ出しちゃった。
翻訳買ってきたけど読めるかな、、

17 :
継続に近いのはC++やJavaの例外処理

18 :
setjmp()/longjmp() はどうですか?

19 :
>>17
それって脱出継続だけやん

20 :
>>17
一番近いのはgotoだと聞いたが

21 :
gotoが継続に一番近いという意見はプログラミング言語の意味論史から見れば本末転倒の答えだぞ。
なにしろ継続(continuation)という概念は表示的意味論(denotational semantics)の産みの親のStracheyが
「goto文に指定されている飛び先ラベルの表示は何なのか?」という問題に対する答えとして発明し導入した概念なのだから。
継続の発明によってgoto文を含む言語に対して表示的意味論を定義し与えることが可能となり、その継続という概念は
エラーなどの例外処理に対する意味論を与える上でも使えると判って活用されるようになったのは、Stracheyがgotoのために
継続を発明してから何年も経ってからなのだから。
つまり継続とは何よりも先ずgotoの意味を捉える目的で発明されたということだ。
だから継続に一番近いのがgotoなのではなく、継続の最も基本的な部分は正にgotoの表示的意味のために作られたんだよ。

22 :
要するにどれもノイマンマシンの機械語ではGOTOだし、
意味論では継続なんだよ。

23 :
ユークリッドの幾何学しか幾何学と呼んではいけないみたいだな

24 :
部分リストを見つける関数って
srfi
とかにないのでしょうか
自分で作るしかない?
(find-sub-list (..... 1 2 3 ....) (1 2 3) )
=> 123 の場所

25 :
>>24
たぶん無い。
汎用的にしようとすると比較関数に何を使うかでバリエーションを作るかオプショナル引数で取るかのいずれかが必要になるので、
仕様をまとめようとすると意外に面倒くさい話になると思う。

26 :
util.match は…

27 :
Lisperはこの世のゴミ
はやくGCされろ

28 :
突発的に感情が高ぶる病気
専門家にご相談ください

29 :
LISP以外では格好がつかない

30 :
matchマクロで
circular-list
だけマッチさせる事ってできないの?

31 :
matchマクロを自分で書こうとしてるのだけど
(match v ((x ...) x))
の ... を実装することができない。
どんな仕組みで実装してるのだろう

32 :
パターンマッチライブラリって色々あるんじゃねーの?
どれの話?
っていうか Common Lisp の話?

33 :
(define-syntax ellipses-syntax-test
(syntax-rules ( ... )
((_ x ... )
(list x ))
))
(ellipses-syntax-test 7 ...)
> '(7)
これが出来ないのです

34 :
>>33
R5RS では syntax-rules で ... にマッチさせることは不可能。
まわりくどいけど、判定の一部を別の手続きにするくらいしかない。
(define (test x)
(equal? x '(7 ...)))
(define-syntax ellipses-syntax-test
(syntax-rules ()
((_ x ...)
(test '(x ...)))))
(ellipses-syntax-test 7 ...)

35 :
R7RS だと非常に簡単に回避する方法が用意されてる。
syntax-rules が従来よりひとつ多く引数を取ることができ、
... のかわりに使う省略子を指定できる。
(define-syntax ellipses-syntax-test
(syntax-rules :: (...)
((_ x ... )
(list x))))
(ellipses-syntax-test 7 ...)
この場合は省略子は使ってないので適当な識別子を書いておけばいい。

36 :
R6RS ではパターンに ... は現れることは出来ないけど、
syntax-case なら fender 節でより詳細な判定が出来る。
(define-syntax ellipses-syntax-test
(lambda(stx)
(syntax-case stx ()
((_ x y)
(eqv? (syntax->datum #'y) '...)
#'(list x)))))
(ellipses-syntax-test 7 ...)

37 :
r6rs なら (... ...) が使えない?
ttp://www.r6rs.org/final/html/r6rs/r6rs-Z-H-14.html

38 :
syntax-rules がネストした場合、
外側が展開されたときに (... ...) が ... に置換えられるということであって、
リテラルとしての ... を表すときに (... ...) が使えるという意味ではないよ。
ところで syntax->datum で文脈を剥してから ... と eqv? で比較するよりも
free-identifier=? で比較した方が R6RS らしいかな。

39 :
define-macroだけではmactchマクロ作れないって事でいいの?

40 :
だけってどういうこと?
使える構文が define-macro だけってこと?
そりゃ無理ぽ。

41 :
みんなSECDマシンってなんて発音?
セクド?
エスーイーシーディー?

42 :
困ったときは Google 様に聞いてみよう。
http://translate.google.com/#en/ja/secd
入力ボックスの右下にあるスピーカーボタンをクリックすると発音を聞けるよ。
あえてカタカナ表記するなら「セキッド」に聞こえる。

43 :
>>42
間違って結果側の右下押したら
「エスイーシーディー」
とか言われてしまって?????ってなっちゃった
左の英語入力ボックスの方だと
セクィッドとセキッドの間くらいに聞こえるね

44 :
>>42
IBM の発音は イビーム だったのか…。

45 :
>>44
言語設定が英語以外になってね?w
フランス語やドイツ語とかだとイビエムって感じに聞こえるけど、
英語ならアイビーエムってけっこうはっきり聞こえるぞw

46 :
>>42
英語の略語?ってアルファベットを順番に発音するのが正しいと思ってた
DMAC ディーマック? ディエムエーシー?
clos シーロス? シーエルオーエス?
それにgoogle翻訳とかweblioとかの発音ってとこまで正しいのか気になる

47 :
community.schemewiki.org/?scheme-faq-macros
にマクロでreverseする方法のってるけど
(define-syntax reverse-order
(syntax-rules ()
((_ e) (reverse-order e ()))
((_ (e . rest) r) (reverse-order rest (e . r)))
((_ () r) r)))
(reverse-order (2 3 -)) ;=> 1
階層深いところもreverseできない
(reverse-order (2 (2 1 +) -)) ;=> 1

48 :
>>47
こんな感じかな。
(define-syntax reverse-order-deep
(syntax-rules ()
((_ e) (reverse-order-deep e ()))
((_ ((e ...) . rest) r) (reverse-order-deep rest ((reverse-order-deep (e ...)) . r)))
((_ (e . rest) r) (reverse-order-deep rest (e . r)))
((_ () r) r)))

49 :
Windows7 の lispbox の slime で portableAllegroServer を動かしたい
とかいう質問はこのスレでいいのでしょうか?

50 :
いいんじゃないの
答えられる人がいるかどうかはさておき

51 :
>>47-48
srfi-53
使うと、驚くほど簡単にreverse-deepできる
なんでsrfi-53はwithdrawnなんだろう
こんなに便利なのに

52 :
ここに議論の記録があるよ。
何を言いたいのかよくわからないので英語がわかるひと解説よろ。
http://srfi.schemers.org/srfi-53/mail-archive/threads.html

53 :
syntax-rules
が名前の衝突を回避してくれるのはletで導入した変数だけ?
自由変数として導入した変数は処理系依存なのかな?

54 :
自由変数もするよ
http://codepad.org/mDVMEs2U

55 :
マクロっていつ使うの?

56 :
今でしょ!

57 :
そういうのはいいから。

58 :
クールな返しにワラタ

59 :
On Lisp にわかりやすい指針が書かれてる。
マクロじゃなきゃ出来ないことをするときにマクロを使う。
逆にマクロでなくても出来ることにマクロは使わない方がいい。
要するに最後の手段なので普通のプログラムではマクロ定義の割合はかなり小さいことの方が多いと思う。
具体的にどういうときに使うかを知りたければ On Lisp はバランスのよい本だと思うよ。

60 :
OnLispはマクロの手前までしか読んでないなあ
読まねば

61 :
マクロをクローズアップしたような本もいくつかあるけど、
そういうのだとマクロの使用が既に前提になってるから
「使うことになったらこんな風に書けるよ」って感じなわけで
言語全体の中での位置付けがわかり難くて
「いつ使うか」ということに対する解は不充分なことがあると思う。
だから、全体を俯瞰しながらマクロの使いどころを解説している
という意味で On Lisp のことをバランスが良いと評した。

62 :
というか、OnLispってマクロの本だよね?

63 :
そうだよ。
でも言語全体の中でのマクロの立ち位置がわかるというか
「いつ使うか」がわかりやすい本ってこと。

64 :
On Lispは訳本がひどいので原著がオススメ

65 :
原著はタダですしねぇ

66 :
訳書もドラフト版はタダで読めるし、基本的な考え方だけならそれで充分だと思うけど。
でも、そんなに高価なわけじゃないし買ってやれよ。 (俺は買ってないけど。)

67 :
Let Over Lambdaの日本語訳の訳の品質ってどうなんでしょう?
実店舗で見かけないので読んだ人の意見が聴きたいです。
訳も原著も通販位でしか買えそうにないので、訳がまずそうなら原著買いたいです。

68 :
うーん、自分は特に変だとは思わなかったけど…

69 :
LOL は難しかったので途中で投げ出した。翻訳は別に気にならなかったけど、何言ってるかさっぱりだった。あれは原文でも読みにくい気がする。

70 :
LOLむずいよね
一応全部読んだけど血肉になった感触がない

71 :
一回読んだだけでは血肉にはならないでしょ
サンプルコードを一行一行丁寧に追った上で何周もして理解を深めるべきレベルの本

72 :
みなさんありがとうございます。
翻訳のクオリティは問題無さそうですね
ただ流石に難しそうですが、、

73 :
LOL を読むより、もしまだなら、PAIP をお勧めする。あれはホンモノだ。

74 :
LOL って、 Let Over Lambda なのか、Land Of Lisp なのか…

75 :
Lisp in Small PiecesとThe Art of the Metaobject Protocolも忘れずに

76 :
LOL = Let Over Lambda
LoL = Land of Lisp

77 :
SYJL = 素数夜曲:女王陛下のLISP

78 :
ONLS = On Lisp

79 :
FE = 深町英太郎

80 :
晒すなやw

81 :
Structure and Interpretation of Computer Programs = WH(和田本)

82 :
アマゾンのレビューに Let Over Lambda は On Lisp の続編て書いてあるけど、もしかしてこれもマクロの本ですか?
勘弁して

83 :
>>82
はい

84 :
むしろマクロ過激派の筆頭エヴァンジェリストなんじゃないかあの本は

85 :
マクロとは何ぞや、を知らない状態で読んだ時 On Lisp より LOL の方が読みやすかったよ

86 :
LOL のマクロは何かわからんがすごい、と思うけど使う気になれない。本流じゃないと思う。

87 :
マクロ好きな人って、他人のマクロ定義を見ても普通のlispコードと同じ程度にはバグがないことを理解できるのだろうか
defmacro が出てくるたびに、 ' と ` と , ばっかりのコードを読まされるこっちの身にもなってほしい

88 :
( ' と ` )

89 :
マクロに辟易してそうな顔、いいね

90 :
( ' λ ` )

91 :
中国人風だな。

92 :
( ^ マ ^ λ)

93 :
>>87
マクロは読むものじゃなく、展開するものだね

94 :
コードは読むものじゃなく、実行するものだね

95 :
macroexpandと逐次実行がナウなヤングにバカウケ

96 :
マクロのバグもそりゃあるだろうけど、そんなにデバッグ大変かな?
あんまり苦労したことないなぁ。展開すれば分かるし。

97 :
>>96
逆に考えるんだ
「展開しなければ分からない」と

98 :
アナフォリックマクロっていうのはsyntax-rulesで書くのは絶対に不可能なんですか?

99 :
syntax-rulesでは無理だね
syntax-caseなんかを使えば書けるよ

100〜終まで読む 1〜終まで読む
1〜終まで読む 100〜終まで読む
TOP カテ一覧 スレ一覧 2ch元 削除依頼
簡単なプログラム言語って何? (142)
【漏れは】猫でもわかる質問スレ【猫以下です】 (496)
【C++】マイナーGUIツールキット (686)
【C++】高速化手法【SSE】 (884)
プログラミングを勉強したいのだが (141)
C#, C♯, C#相談室 Part81 (271)
--------------------
寝起き
基地外大野智ヲタの悪行を語るスレ645
きっずの噂1149
シャヲル雑談スレ30
プ避難所 2
肴子専用ダイエットぼやきスレ
東方神起の雑談避難所14440
羽海野チカヲチスレ 117