Lisp Scheme Part37 (268) TOP カテ一覧 スレ一覧 2ch元 削除依頼
静的型付け言語の潜在開発生産性は今の100倍 ×3 (561)
プログラミングを勉強したいのだが (141)
VBで作られた有名なアプリって何? (168)
データ構造,アルゴリズム,デザインパターン総合スレ 2 (109)
Visual Studio 2005 Part 27 (142)
Git 7 (190)

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 :
>>98
可能と言えば可能ではある。
まわりくどいし、面倒なだけで割にあわないと思うけどね。

101 :
@naoiwataってやつが書籍違法ダウンロードしてるようだけどこれもLisperなの?
https://twitter.com/naoiwata/status/367919124573204480

102 :
法律論とクラッキングは横においておいて、
無断UPは徹底的に見つけ出して厳罰に処すべきだと思うが、どんなコンテンツであろうと無断DLはどんどんやっていいというスタイルこそが正しいWEBのあり方だと思う

103 :
俺は無断DLはしないよ
ローカルにキャッシュするだけだよ

104 :
>>101
ツイッタに報告しようかと思ったが著作物について権利がある人や代理人でないと違反報告できないっぽい。
https://support.twitter.com/articles/486421-#6

105 :
>>99
ググってみて出来るみたいだねってことが分かった

106 :
>>101
書籍のダウンロードは違法じゃない
著作権法第三十条
>著作権の目的となつている著作物(以下この款において単に「著作物」という。)は(略)次に掲げる場合を除き、その使用する者が複製することができる。
>三 著作権を侵害する自動公衆送信を受信して行うデジタル方式の録音又は録画を、その事実を知りながら行う場合
                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

107 :
まあネット的には可燃案件なんですけどね

108 :
>>101
しょしんしゃなので sublime text というのをまだつかってます(汗
みたいなツイートとかイラッとくるなw金払わずに使い続けてそうだしw
つーかST2を初心者用エディタ呼ばわりしてるところもイラつくし、使ってもないEmacsやVimを上に見てるところもムカつく。権威主義?ワナビー?
sublime text というの、って言い回しの「というの」の気持ち悪さ。自分はこれ初心者用エディタって知ってますよ、一歩引いたうえで仕方なく使ってるんですよアピール。
周りのチンポどもも、こんな奴甘やかすなよ。童貞ばかりで本当に気持ち悪い。

109 :
尼のウィッシュリストを通してギフトが届いたら、すかさず他の本のリンクを貼りましょう。

110 :
>>108
Emacs や Vim が初心者にとって使い難い (ハードルが高い) のは試してみるまでもなく有名な事実だろ。
それを権威主義とはさすがに言い掛かりが過ぎる。

111 :
>尼のウィッシュリスト
すごい、淫靡なものを想像しちゃった…

112 :
lispのためなら!
この前やっと原始lispのコードを読みました,意外にいける気がしてきました

113 :
そうか。

114 :
GNU Make 4.0 に Guile が組込まれたんだってさ。
http://lists.gnu.org/archive/html/info-gnu/2013-10/msg00006.html
Perl やら Ruby やら Python に比べればマシな選択ではあると思うけど、
そもそもそういう拡張言語を組込むのが余計っていう気もする。
どう思う?

115 :
これが後の「待ちGuile」事件である

116 :
MakefileをS式で書けるなら歓迎する

117 :
http://sourceforge.jp/magazine/11/02/18/0417203
知らない間にvmになってた。
https://sites.google.com/site/shidoinfo/Home/programing-lang/関数型プログラミング言語/lisp/scheme/scheme-処理系/guile
GNU 機能拡張用言語計画では、schemeの上で言語追加出来るようにするつもりだったのか。

118 :
http://ja.m.wikipedia.org/wiki/GNU_Guile
schemeそのままだと組み込みと相性が悪い感じで変えてあるみたいなこと書いてあったので、それに合わせたベストプラクティスがあるんだろうな。
makeは、OS標準ディレクトリにインストールするレイヤーのもの作ってないし、ビルドシステムも言語ごとにつかってるし、配備もデプロイツールも使ってるので、最近使ってない、、、

119 :
Makefileを直書きするときにschemeでも書けるようになったということ?
でもmake使う層はautoconfに移行してるんじゃないのか?
と言っても俺は5年以上前にsconsへ移行してから事情はよく知らないんですけどね

120 :
rms「GNUの開発言語はLispだから(震え声」

121 :
schemeの開発環境のオススメを教えてほしい。
windowsです。

122 :
どういう状況で使う予定とか自分のスキルとか、もうちょっと要望を言えよ。
どんな環境でも善し悪しがあるでよ。

123 :
>>122
偉そうに

124 :
DrRacketってやつを家では使ってるけど、大学ではemacsとGaucheを使うらしく、どうすべきか悩んでる。
ちなみに、現段階だとCとjavaを他に使うぐらい。
Cはvimで書いてて、javaはどうしようか悩んでるところ。
開発環境ってそれなりに揃える(というか同じ系統?)にすべきかな。
まだプログラミング経験が浅いので突っ込みどころたくさんあるだろうけど、お手柔らかにアドバイスお願いします

125 :
大学でGausheなのか
なういね!

126 :
環境整えるのも、勉強だと思ふ。
Windowsなら仮想環境でLinuxで動かす、なども含めて。

127 :
>>124
大学の方が言語を変えるまで留年し続ける呪いをかけといた

128 :
>>125
けっこう最近のものなのか。
>>126
学校に合わせるために自力で環境整えろってことでしょうか。

129 :
MSが用意したもの以外を使うならwindowsよりlinux,macの方が向いてると思う

130 :
>>129
持ち運びできるサイズのノートパソコンが欲しいので、Macの購入は検討していますが、自宅では当面はWindowsになるかと思います。。
ちなみに大学はMacです。

131 :
>>124
Scheme は処理系ごとの拡張が多いからなぁ。
入門レベルの範囲内ならどれを使ってもそれほど大きな差はないと思うけど、
これから入門する人にとってはその小さな差でハマる可能性もあるし、
大学で Emacs と Gauche を使うというならそれに合わせといた方が良いと思うよ。
でも、ひとつに固執する必要もないと思う。
他にも色々と入れておいて、大学でやるのとは別に色々と試してみてもいいんじゃないかな。

132 :
>>131
なるほど。
とりあえず家ではいくつかの環境を用意しつつもemacs+Gauche主体でやってみます。

133 :
X-WindowなしのフルスクリーンEmacsで勉強すると気分出るぞ。

134 :
>>133
それたぶん日本語がらみでアウト…

135 :
>>134
いや大丈夫だろ
コンソールでemacs使ったことない?

136 :
>>135
SunOS 4.1 でなら…

137 :
とりあえずコンソールが適当な漢字コードで日本語を表示できれば、
emacs単独でコンソールに出力する漢字コードをいくらでも変更できるからね
screenとかを使うのもいいけど

138 :
手元がWindowsでLinuxか何かにログインして使うなら、PuTTYのフルスクリーンモードにすると楽しい。

139 :
http://homepage1.nifty.com/~skz/Scheme/
「好きい夢」きもすぎワロタ笑

140 :
中高生向けの事業だとしたらすばら

141 :
しくない。

142 :
「好きい夢」って名前は読むだけで恥ずかしくなるな

143 :
本人は上手いこと言ってるつもりなんだろうな。

144 :
アニヲタっぽい

145 :
それより飲み屋だな

146 :
>>145
わかる。 オッサン的センス

147 :
またまたカッコつけちゃって〜頼むよ〜

148 :
>>146
実際オッサンだからセンスがオッサンなのは仕方なくね?

149 :
好き芋
秋だなぁ〜

150 :
好き淫夢(察し)

151 :
>>150
ホモじゃなくても死滅しろ

152 :
ガイスティールは淫夢厨だったンゴwwwwwwwwwwwwwwwwww

153 :
たまげたなあ

154 :
>>139 のネーミングセンスも >>148 の寛大さも好き

155 :
>>154
なに偉そうに評価してるわけ?

156 :
360度評価

157 :
当人がオッサンだろうが何だろうが事業としてやるんだったらターゲットにアピールできているかどうかだけが肝心。
中高生あたりに対してもウケ狙いであえてオッサンセンスでやってみるというのも有りだとは思うけど、この場合は笑わせてるつもりで笑われてるだけの道化。
中高生向けにはもっと中二病 (GEEK SENSE) っぽい名前の方がいいだろ jk
shiro さんの会社名 Scheme Arts とか簡潔なのに超かっけー。
意味はとりあえず置いといて響きだけで濡れる。 ステキ!抱いて!ってなる。

158 :
そういうのはすごく失礼だからやめよう(提案)

159 :
日本のLispコミュニティなんて本を積み上げるだけで生産性皆無の口先インテリもどきばかりだから
せめて邪魔しないで差し上げろ

160 :
http://r-2ch.com/t/livejupiter/1378495564/#54
改変ネタ
お盆に、親父と長野の親戚の家にいった。
伯父(高卒市議)も来ていた。
伯父「○○君!小さい頃よくだっこしてやったんだぞ!がっはっはー」
俺 「覚えていますよ」
伯父「どんな名前にしたんだ?」
俺 「スキームアーツ、あっ、 Scheme Arts です」
伯父「そうか、 Scheme Arts か!高校時代遊びすぎたんだろ!でもよかったな!」
  「お前と同じ年の息子の××覚えているだろ!好きい夢だぞ!(勝利者宣言)」
親父「無言・・・(瞳が潤んでいた)」
伯父「おい、好きい夢こっちこい(息子の××を呼ぶ)」
  「○○も大学生だ。○○と昔よく遊んだだろ!」
向こうでも大学の話をしていたらしい××が鼻高々でやってきた。
××「(馴れ馴れしく)○○、久しぶりー、元気!」
  「あっ、叔父さん、こんにちは、俺、今年から好きい夢始めました。」
親父「そうか、大きくなったな」
××「好きい夢やってるんですよー(勝利者宣言)○○君はなにやってるの?」
俺 「Scheme Arts www」
ニヤついている伯父を尻目に、一瞬にして××の顔色が変わった。
伯父「○○と取引してやれよw」
××「(しばし、絶句)・・・みっともないからやめてくれよ親父」
伯父「?」
動揺しまくりの××は伯父を速攻連れだした。
以後、伯父親子は、俺達のいるテーブルに加わらなかった。
久しぶりに無口な親父の晴れ晴れとした顔をみた。
帰り際、充血した目をした伯父と目があった。

161 :
好きい夢の方は現行で日本のLispコミュニティに
多大な貢献をされておられる5人に間違いなく入るからな
恐れ多いこと書くんじゃねーよ穀潰しども

162 :
>>160
お前もセンスねーな。
>>161
貢献がないわけじゃないが、5人の内にっていうのは言いすぎだろー。

163 :
今一番注目の女子schemerって誰ですか?

164 :
あやぴー

165 :
サスマンの嫁

166 :
女王陛下

167 :
彼のLispに対するで甚大な仕事量を無償で公開し続けていただけることに頭が下がる
lispスゲー lispスゲーって騒ぎ立ててる脳タリン共は見習え
それかcametanを仰いで情報を引き出せ執筆させるのじゃ!

168 :
>>164
あやぴーって腕いいの?

169 :
ホモはなんjに帰って、どうぞ

170 :
>>168
さあ?
プロのプログラマみたいだし、SCHEMEもほどほどには使えるんじゃね。

171 :
>>167
cametan も割といいかげんなこと言ってると思う。
歴史的事情についてはおにぎりの人とか、
理論面はにゃーんの人とかが詳しいという印象。

172 :
負けで採用
http://developers.slashdot.jp/story/13/10/11/1956245/

173 :
その話はもう済んだ

174 :
勝手に終わらせるなよ

175 :
gaucheしかインストール成功しなかったのでよく分からないのですが、
gauche.arrayみたいなモジュールの中の関数はどれだけ可搬性があるのでしょうか
たとえば、make-arrayの引数にshapeを使うようなスタイルは他のscheme実装でもやってるのでしょうか

176 :
>>175
Scheme Cross Reference で SRFI-25 を調べてみると
Chicken, Gauche, Kawa, MzScheme, SISC, Scheme48, Schluessel の7個で実装されていることがわかる。
http://practical-scheme.net/wiliki/schemexref.cgi?SRFI-25
ほどほどにポータブルって言えるんじゃないかな。
その前にまずは Gauche のドキュメントを読むべきかな。
それぞれの手続きや構文が何に基くものかちゃんと書いてある。
make-arrray の場合だと SRFI-25 だと明記されてるね。
http://practical-scheme.net/gauche/man/?l=jp&p=make-array
場合によっては SRFI そのままじゃなくて Gauche の独自拡張がある場合もあって、
そういうときは [SRFI-25+] みたいに最後に + を付けて表してる。
http://practical-scheme.net/gauche/man/?l=jp&p=array-start

177 :
スキームアッー

178 :
スキームとアッーな関係になるなら本望

179 :
スティール兄貴が黙ってないんだぜ?

180 :
He's so guy.

181 :
>>160
信越ってひとくくりにするけど新潟と長野は別だから (震え声

182 :
信越というくくり方の意味を初めて知った

183 :
Schemeでclassとか構造体を表現する標準は
結局どれになるのでしょうか
srfiでまとめられていますか?

184 :
構造体なら SRFI-9 の define-record-type が R7RS に採用されたのでそれが標準になるのでは

185 :
スーパーラムオブラザーズはまだですか?

186 :
>>183
R6RS では SRFI-76 がベースだな。

187 :
R6RS は要らない子

188 :
んなこたーない。

189 :
R20RSとか征くとどうなってるんだろうな

190 :
.Netかj2eeに対抗できる

191 :
そこ頃には .Net も j2ee も廃れてるだろ。 常識的に考えて。

192 :
.netもjavaもiso規格で残るから・・・(震え声)

193 :
さすがに20回も改訂したらスタックオーバーフローは起こさなくてもメタメタなものになるだろな。
それよりもCommonLispの改訂版を作るべきだ。

194 :
末尾再帰最適化、ソケット、スレッド、
正規表現を盛り込まれたCommonLispが欲しい

195 :
SICPって第1版と第2版で内容的にどれくらい違いがあるの?

196 :
日本語の正規表現処理がまともにできるのはGaucheだけ
と数年前に聞いたのだけど,今も状況は同じなの?
Mecab,CabochaのバインディングもGaucheしか存在しないみたいだけど

197 :
CabochaのGaucheバインディングの作者が
今はpython使ってるみたいだけど
何があったんだろう

198 :
>>196
簡単に試してみた。 Sagittarius, Racket, Ypsilon, Mosh は出来るっぽい。
エッジケースまで確かめたわけじゃないから「まともに」というのがどのあたりまでのことを言っているのかによって判断が分かれるかもしんないけど、
さっぱり話にならないというほどではないと思う。

199 :
>>194
これよりも先にコマンドライン引数を入れてほしいわ

200 :
SRFI-115 が正規表現を提案してる。
http://srfi.schemers.org/srfi-115/srfi-115.html
R6RS 以降なら Unicode を想定できるから日本語も含めたマルチバイト/ワイド文字の正規表現も規格化し易くなっていると思う。

201 :
>>184 >>186
r6rsとr7rsに互換性が無いってこと?

202 :
何を今更。

203 :
R6RSは黒歴史扱い。

204 :
R6RS 自体はそんなに悪くないと俺は思ってんだよな。
前にも書いたことだけど、機能は相互作用があるものだからある部分の詳細を詰めようとすれば
他の部分にも決めなきゃならないことがどんどん出てきて、最終的にはある程度の大きさになるのは仕方ない。
R6RS が批判されたのは決定プロセスが急ぎすぎたということ。
出てきた仕様の穴を埋めることに終始してしまい、
大元のモデルが妥当かという議論が欠けているように見える。
だから R6RS は R6RS の方針に於いての穴はそんなにないけど、
そもそも R6RS の基本思想が妥当じゃない (Scheme 的でない) かもしれないという話だと思ってる。

205 :
emacsでgaucheを使っています
goshのプロンプト画面で、common lispのslimeのように,を入力したらメニュー(slime-handle-repl-shortcut)が表示されるようにできないのでしょうか
設定方法があるかもしれませんが探せなかったので質問しました

206 :
Gaucheのswankサーバが無かったっけ?
それでSLIMEを使えばいいのでは。

207 :
gaucheのswankサーバは古いからそのままだと動かないよ

208 :
slime-handle-repl-shortcut
ってどんな機能?

209 :
> slime-handle-repl-shortcut
slime-repl-mode のキー "," に割り当てられている。
REPLの行の先頭で "," を入力すると、
SLIMEのコマンドを入力するミニバッファ(TABで補完可)が出る。

210 :
slime ではない emacs でコマンド入力モードになったからと言って
何に対してコマンドを送ろうと言うのか。

211 :
コマンドー

212 :
Lispはゴミ

213 :
そうか。

214 :
そうだ

215 :
>>212
ゴミもatomの集合なんだぜwwww

216 :
SCHEME関連の質問はどこでするのが一番良い?

217 :
ここでしょ

218 :
>>216
Ruby厨を装って、
は?schemeってこんなこともできないの?劣化Rubyじゃん
みたいな風に質問するのおすすめ

219 :
2chやTwitterでの基本的な煽り技だよね。
Ruby厨は実際にそんな感じだから説得力あるし。

220 :
それ使わないほうがいいよ
まともな回答がついてないことが非常に多い

221 :
>>219
>2chやTwitterでの基本的な煽り技だよね。
昔からある煽り技だよね、たとえば街宣右翼とか....
好きな言語があるのなら、その良さをより高めようと努力するのが日本人だけど、
アンチRuby派は、Ruby使いに成り済ましてまで、Rubyの脚を引っ張ることに心血を注ぐ
まったく理解不能だ

>Ruby厨は実際にそんな感じだから説得力あるし。
意訳してみた:「Ruby厨は実際にそんな感じだから説得力あるニ... し。」

まともなRuby使いなら、RubyのルーツがLispにあるのを知っているから、
>>216みたいな質問はしないね
逆に、Lisp/SchemeのこんなことがRubyでもできるようにならないか?という事に関心を持つ

222 :
Lispに有ってRubyにないものって何か有るか?
もうかなりの機能は吸収されただろうし、
されてないものは要らないと判断したものじゃないのか?

223 :
s式

224 :
型宣言とかディスアセンブルとか。

225 :
アンチとか

226 :
マクロ

227 :
>>224
探してみたらこんなのを見付けた。
http://doc.ruby-lang.org/ja/2.0.0/method/RubyVM=3a=3aInstructionSequence/s/disasm.html

228 :
>>225
ワラタけどそれはすでにあるような気がする

229 :
>>222
大学の教育で使える堅い本

230 :
SICPとLOL

231 :
OL

232 :
>>226
Ruby のボスであるまつもとゆきひろ氏は「マクロは拒否する」と書いてある。
http://www.rubyist.net/~matz/20060914.html#p01
つまり、 >>222 が言う要らないと判断したものなんじゃないか。

233 :
100歩譲ってマクロを認めるとしても、ちゃんとした人が作って承認されたマクロだけを認めるべき

234 :
ttp://image.space.rakuten.co.jp/lg01/78/0000277178/83/img353e9d21q2zt9w.jpeg

235 :
>>233
ちゃんとした人って何だよ。 そういうのはお前の脳内だけで勘弁な。
審査を経て承認されたものだけが取り込まれるのなら、マクロというよりただの構文糖じゃねーか。

236 :
>>235
逆に言うと、マクロは糖衣構文だけにすべき

237 :
>>236
処理系の内部にそういう変換層を設けるだけでユーザにはマクロ定義させないという意味で理解していいか?
Lispのマクロは未知の状況に対する保険であり、抽象化の道具のひとつ。
http://practical-scheme.net/wiliki/wiliki.cgi?Lisp%3A%E3%82%88%E3%81%8F%E3%81%82%E3%82%8B%E6%AD%A3%E8%A7%A3#H-yq0lq
かつてはマクロが必要とされた状況でも長年の経験に蓄積によって他の対処方法が見付けだされて、
今ではRuby等でもある程度(全てではない)は対処できるようにうまく設計されてる。
相対的にマクロの価値が低くなってしまっているのは事実だと思うけれど、
ユーザーから道具を奪うのはLISPの精神に反するんじゃないか。
LISPは良くも悪くも自由なもんだろ。
自由であることが欠点になり得る部分が有るにせよ、それはトレードオフの問題であって、
マクロが嫌なら自分なりのコーディングルールを設けて使わないでいる自由もある。

238 :
普通にコーディング規約で対処するべき階層の問題だと思うが

239 :
マクロは未知の状況に対する保険ではなく、未知の不具合を生み出すリスクである

240 :
ま、それもトレードオフだろ。 未知の状況に対処するんだから不具合だって未知のものが出てくることだって有るわな。
打てる手段が無いよりはやっつけ仕事でも出来ることがある方が良いってのがLISPの選択。

241 :
マクロは、ただの書き換え程度ならまだかわいいんだけど、実行フローを表から隠すのがダメ
OnLispとかだと、新しい実行制御を組み込めるのが利点とか言ってるけど、使い捨てプログラムでもない限り、どう考えても害悪だと思う

242 :
>>241
いや、それは逆だろ。 全く違うパラダイムでさえ隠蔽 (抽象化) できる方法じゃないか。
最初から欲しいパラダイムを提供している言語 (処理系) が有るならそれを使うべきではあるが、
場合によっては組み合わせたいことだって有るだろうし。

243 :
Rubyの数式処理ソフトってないよね?
maximaを超えるものがない

244 :
>>242
その抽象化が正しいことを場合によってはいちいち expand して確認しないといけない
表面上は綺麗に抽象化されているように見えも、展開したときに関数の実行順や実行回数がおかしなことになってる

245 :
>>244
そりゃマクロじゃなくても同じことだろ。 いつだってバグを混入し得ることにかわりない。
問題があったときにマクロを直せばいいところを
隠蔽せずに書くってことはおかしな実行順や実行回数がないことを全ての箇所で確認しなきゃならないってことだぞ。

246 :
>>245
マクロによる抽象化と関数による抽象化の一番の違いは、マクロがコード生成コードという点
次に制御構造をいじくるという点
具体的に言うと、特殊形式に渡した引数を評価する順番がまりごとに異なるという点
関数のデバッグみたいに、引数と値を比べて、関数を記述してあるソースを書き直して終わりってわけじゃないんだ

247 :
俺は>>237の意見だな
目の前に解決しなきゃいけない問題があってあんまり検討してないけどマクロじゃなきゃできない気がするならマクロを使う
あとで高階関数でいいじゃんってなることが多いけど

248 :
>>246
ここまで議論を眺めてて食い違っている点を理解した。
要するに >>246 は制御フローを弄るってところで既に忌避感を持ってるんだな。
OnLisp だって何も不要なところで制御フローを変えろと言ってるわけじゃない。
「制御フローを変えられればすっきり出来るからどうにかなんない?」
という他の言語でなら無茶ぶりと言える要求があったときに、
そんな無茶にもなんとか応えられますよというのが OnLisp が言ってることなんだよ。
制御フローを変えないより変えた方が良い状況になったならという前提を設定したときの話なんだから、
その前提条件が気に入らないというんじゃ噛み合わないよ。

249 :
>>248
その前提を踏まえた上で、マクロの使用は、処理系がデフォルトで提供するようなきちんと検査された糖衣構文程度に留めるべき、というのが我々の意見
マクロつかったプログラミングしたいなら、型情報やフローがコードに陽に現れてる言語にマクロ機能を追加して、その言語でやるべき
Lispみたいにデータに型情報が隠れてる言語でやるのは勘弁してほしい

250 :
出、出た〜www我々とか言って勝手に自分の意見が多数派奴〜www

251 :
>>249
オレもその意見に賛同するよ

252 :
>>249
踏まえるどころか更に大前提たる Lisp を否定しちゃってるじゃないの。
あらかじめ解くべき問題がはっきりしててそれに都合の良い言語があるならそれを使いますがな。
(なるべく慣れた Lisp を使いたいということも有り得るけど。)
Lisp プログラミングしてるときに面倒な問題に遭遇したら切り札としてマクロがありますよっていう話じゃん。
>>237 にも書かれてるけど「未知の状況に対する保険」なんだよ。

253 :
>>252
解くべき問題のクラスはあらかじめはっきりしてる
マクロなしでも解けることだけは分かってる
未知の状況に対する保険ならば、それこそ、きちんとした人や組織が認めてみんなで使い古したマクロだけを使うべき
というか、そもそもそんな状況でマクロを使うべきではない
マクロこそLispだと主張するなら、我々はLispを否定する

254 :
Lispは否定する自由も認めている

255 :
>>253
マクロを使う利点をまとめると
- 見た目がすっきりする
- 構文に名前を付けられる
- 同じことを繰り返し書かなくてよくなる
といったところかな。
マクロは極論すればただ短く書けるだけなんだから、
マクロを使わなければ解けない問題というのは無いというのはあらためて言うまでもない。
マクロを積極的に使わなくても書ける、というのはその通り。
でも、それを言うならプログラムを手続きに小分けせずベタ書きしたって動きはするよ。
だけど、適度に分割したり組み合わせたりすることでわかりやすくしてるわけだよね。
そんでもって人によってどの程度の抽象化がわかりやすいかは違うわけだよね。
OnLisp にある prolog もどきがあなたのやり方にそぐわないということはもちろんあり得る。
動作がなんとなく見える程度に薄いマクロをあなたが定義する自由だってあるし、
全くマクロを使わない自由だってもちろん有って、 Lisp という言語はその自由を奪うことはない。
だけど、私があの Prolog もどきを使うとしたらなるべく隠蔽 (抽象化) したいと思うし、
そのためにはマクロは欠くことの出来ないものだとも思う。
それを「使うべきでない」などと言われる筋合いもない。

256 :
勝手に脳内変換すると
独自マクロ=(C系の)コンパイラによる構文独自拡張って感じかな?
javaのAOPとかは、どこに当たるんだろう。

257 :
例えば、ある言語で、その言語のコンパイラの構文解析器をユーザのコードから直接いじる機能があったとしたら、その機能に対してどうコメントするだろうか
例えば、ありとあらゆる要素を外見上区別できない形で表現できる高度に抽象化された言語で、コードに並んだ要素の置き換えや削除をするコードをそのコードの中の記号の羅列で自動生成する機能があったとしたら、その機能に対してどうコメントするだろうか
例えば、それらの機能が '`,@の羅列で定義されているとしたら、どうコメントするだろうか
他人の自由を最大限尊重し、メモ帳+コマンドプロンプトでschemeプログラムする大学生をも笑顔で見守る我々でも、やはり「使うべきではない」と言うであろう

258 :
我々って誰やねん

259 :
>>255
>OnLisp にある prolog もどき
使うならminiKanrenの方が便利だし好きだな

260 :
>>257
http://d.hatena.ne.jp/keyword/%EB%CC%CA%DB%A4%CE%A5%AC%A5%A4%A5%C9%A5%E9%A5%A4%A5%F3
> 1.事実に対して仮定を持ち出す
> 4.主観で決め付ける
> 5.資料を示さず持論が支持されていると思わせる

261 :
>>257
>言語のコンパイラの構文解析器をユーザのコードから直接いじる
余談ですが
アラン・ケイはそういう機能が好きで、彼が主に関わった言語は大抵それができ、
いま彼が手がけているSTEPS/FoNCでは、その種の機能をコンセプトのコアに据えてまでいます。
http://d.hatena.ne.jp/propella/20091219/p1
http://d.hatena.ne.jp/propella/20111022/p1
>コードに並んだ要素の置き換えや削除をするコードをそのコードの中の記号の羅列で自動生成する機能
>'`,@の羅列で定義されているとしたら、
それは拙いけど、あえてそういうやり方だけに限定して
マクロの可能性をスポイルしてしまうのはもったいないんじゃないかなと思ったので。

262 :
>>253
だからさー、マクロは切り札なんだってばよ。
他に方法があるときにマクロを使うなっていうのはOn Lispでも言われてることだし、
それでもどうしてもマクロが必要になったときの話なのに、
「いいや、マクロは要らない」じゃ話になんないじゃん。
そりゃ使わずに済む状況ならそれに越したことはないよ。
Lispが進化的モデルでの開発に向いてるのは今更言うことでもないだろ。
「問題(要求)がはっきりしていないとき」と前提を定めているのに、
「いいや、はっきりしてる」じゃ話になんないじゃん。
そりゃはっきりしてない状況よりはっきりしてる状況ならそれに越したことはないよ。
それでもはっきりしてない状況に遭遇するから困るんじゃん。
そういうときの話をしてるんじゃん。
前提を覆すのはやめてくれよ。

263 :
lispマクロは、S式(構文木)のおかげで、C++TemplateぐらいのことがS式で簡単に出来るイメージなのだか、
潜在欲求としては、見分けつくように構文分けて欲しいということなのかね?

264 :
論文書きつつ実装進めてるscalaでもマクロ機構が取り入れられてるみたい(書き易そうなのは2.10以降、マクロパラダイスという名前だ、、、)
http://docs.scala-lang.org/ja/overviews/macros/paradise.html
http://slides.pab-tech.net/scala-macro/#15
HaskellやOcamlのメタプログラミングは、他の言語と同じくAST操作のレイヤー
(lispは同じくレイヤーがHTMLのDOM操作と同じようにS式操作なので分かりやすい)
http://nicolaspouillard.fr/talks/cufp-metaprogramming-tutorial-slides.pdf

265 :
>>261
steps面白うそうだね、紹介してくれてありがとう

266 :
R6RSとかR7RSの日本語のリファレンス本ってないの?

267 :
>>266
ない。
ところでSCHEME関連書籍を探してたらこんなの見付けた。
http://iss.ndl.go.jp/books/R100000001-I035885012-00
書籍扱いでSCHEMEインタプリタを売ってたらしい。
価格が11650円という高価(言語処理系の値段としてはそんなものだけど)なんだけど、値段に見合った性能が有ったのかな。
湯浅太一氏が書いてるならそんな変なものではないと思うけど、処理系の名前もないから調べられない。

268 :2013/10/27
>>267
TUTScheme
TOP カテ一覧 スレ一覧 2ch元 削除依頼
MVVMについて語ろう (678)
Androidプログラミング質問スレ Part37 (214)
JAVAってこんなことも出来ないの? (695)
VBで作られた有名なアプリって何? (168)
【上流社会】MSDNサブスクリプション総合【最先端】 (652)
【COBOLから】バッチ処理【Javaまで】 (153)
--log9.info------------------
【フラワートラベリンバンド】ジョー山中vol.3【人間の証明】 (865)
結局ハイロウズはブルーハーツを超えられなかったな (256)
3婆 【及川光博と伝説の長文婆】 産婆 4 (134)
忌野清志郎と遠藤ミチロウが私のオナペットでした (193)
【活動】HAL FROM APOLLO '69【凍結】 (897)
SSE・トランスレコード 3枚目 (174)
伝説の番組イカ天 (400)
名曲「鏡の中のマリオネット」GLAYは糞 (406)
遊佐明子 (345)
ハイスタはもう伝説だろ?? (812)
【RAIDEN】RX(雷電/石川/松崎)【XENON】 (890)
じゃがたら ☆ お春発売記念 (403)
★   キミドリ  ★  (125)
【トモベ】友部正人part2【マサト】 (918)
TRACY (444)
【神戸発10人組】倭ジェロpart3【ブラスロック】 (827)
--log55.com------------------
宮崎駿「火星で住めるようにするとかさ、だったらサハラ砂漠に住めるようにしろよ。本当にけしからんNASAとか」←反論できるかこれ [998671801]
【悲報】社民党、消滅を容認 立憲への吸収合併に応じることを視野 [541636285]
頭があまり良くない人が、よく言う言葉 [998671801]
マツコ「東京の夜景をヘリで見るとどこまで行っても明かりがついてる。この一個一個に生命がいると思ったら怖くなった」 [541636285]
日本レコード大賞「パプリカ」に賛否両論渦巻く 特に乃木坂オタが発狂中 [368289528]
【悲報】ネトウヨさん、パプリカが流行したのは朝鮮人の陰謀だと言い始めてしまう [854554241]
テキ屋さん歓喜。「鬼滅の刃効果で狐のお面がすごい売れるんだよ!」 [304868982]
実写「ゆるキャン△」、最終ビジュアルにて完璧な再現度を叩き出す [399583221]