Lisp Scheme Part37

このエントリーをはてなブックマークに追加
1はちみつ餃子 ◆8X2XSCHEME
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デフォルトの名無しさん:2013/09/01(日) 03:47:24.41
いままで日本ではトンコツラーメンは100%安全ですって言ってたのに

こうやって一度食中毒事件が発生してしまったので、もうこれ以上日本民族にラーメンを扱うのは無理。

ましてや日本は地震大国で、日本列島には40億年前の活断層が張り巡らされているのだ

食中毒事件を発生するのを想定せずにのんきにラーメン作りしていたラーメン屋の危機意識の無さが敗戦した日本軍にそっくりだ

これからはいままでのラーメンに対する安全神話を真摯に反省し、2030年までにラーメンゼロを目標に定めた政府ガバナンスを早急に作成して

足りない分は内向きガラパゴス思考な一国主義に陥らぬよう国際的視野に立脚し、特に東アジアに貢献すべく韓国サムゲタンを食べるべき!!
3デフォルトの名無しさん:2013/09/01(日) 04:43:00.73
おつ
4デフォルトの名無しさん:2013/09/01(日) 17:04:49.92
「ステマ」等の絶対にありえない陰謀論を連呼する
頭がおかしい人の相手は誰もしたくない
そのために
>>2
みたいな政治の話題は、ほとんどの掲示板で禁止になっています
5デフォルトの名無しさん:2013/09/01(日) 17:08:46.45
>>4
フジテレビの韓流ステマやってる
チョンの地下秘密組織は実在するし
証拠もある
311の人工地震もチョンの地下秘密組織がやったんだけど
6デフォルトの名無しさん:2013/09/01(日) 17:20:23.85
>311の人工地震もチョンの地下秘密組織がやったんだけど
流石にこれは駄目だろwwwww
XFileが真実とか言っちゃうくらい駄目

もちろんLispのマクロは必須だ(と強引にスレに持ち込む)
7デフォルトの名無しさん:2013/09/01(日) 18:30:26.63
そうか。
8デフォルトの名無しさん:2013/09/01(日) 18:38:59.20
動的型付け、メタオブジェクトプロトコル、REPL、継続、イントロスペクション、これらはもう、レベルは兎も角、他の言語にも取り込まれてしまっている。最後の最後にLispに残る優位性があるとするならそれはマクロだね、多分。
9デフォルトの名無しさん:2013/09/01(日) 18:40:10.83
試しに、したらば
に移動したらネトウヨが来なくなるのかには
興味ある
10デフォルトの名無しさん:2013/09/01(日) 19:22:44.30
継続って他の言語に取り込まれてるか?
11デフォルトの名無しさん:2013/09/01(日) 19:36:54.56
Rubyちゃん
12デフォルトの名無しさん:2013/09/01(日) 20:49:22.14
call-ccそのものは無いけど、クロージャ渡しは普通になってる
13デフォルトの名無しさん:2013/09/01(日) 21:26:12.07
>>4
あなたがそういう方だったとは思いませんでした。
ひょっとするとラーメン村住人なのではないですか?
14デフォルトの名無しさん:2013/09/01(日) 21:39:14.41
継続とクロージャ渡しは違う気がする
15はちみつ餃子 ◆8X2XSCHEME :2013/09/01(日) 22:17:29.30
>>8
Perl6 は抽象構文木をコンパイル時に弄る機能が入るらしい。
http://perlcabal.org/syn/S06.html#Macros

>>10-12
Rhino は JavaScript の処理系だけど、 Continuation クラスがある。
http://wiki.apache.org/cocoon/RhinoWithContinuations#Continuations

>>14
CPS 変換した世界で考えれば同じだよ。
実際、フォーマルな意味論ではそうなってる。
理屈の上では表記方法の問題に過ぎない。
って、どこかで見たんだけどどこで見たんだったか忘れた。
16デフォルトの名無しさん:2013/09/01(日) 22:26:29.67
何年か前にLittle Schemer読んで、Seasonedの最初の方で投げ出しちゃった。
翻訳買ってきたけど読めるかな、、
17デフォルトの名無しさん:2013/09/02(月) 18:37:31.52
継続に近いのはC++やJavaの例外処理
18 ◆QZschizo.ptH :2013/09/02(月) 21:22:40.86
setjmp()/longjmp() はどうですか?
19デフォルトの名無しさん:2013/09/02(月) 22:04:51.31
>>17
それって脱出継続だけやん
20デフォルトの名無しさん:2013/09/03(火) 00:24:54.96
>>17
一番近いのはgotoだと聞いたが
21デフォルトの名無しさん:2013/09/03(火) 09:44:19.10
gotoが継続に一番近いという意見はプログラミング言語の意味論史から見れば本末転倒の答えだぞ。

なにしろ継続(continuation)という概念は表示的意味論(denotational semantics)の産みの親のStracheyが
「goto文に指定されている飛び先ラベルの表示は何なのか?」という問題に対する答えとして発明し導入した概念なのだから。

継続の発明によってgoto文を含む言語に対して表示的意味論を定義し与えることが可能となり、その継続という概念は
エラーなどの例外処理に対する意味論を与える上でも使えると判って活用されるようになったのは、Stracheyがgotoのために
継続を発明してから何年も経ってからなのだから。

つまり継続とは何よりも先ずgotoの意味を捉える目的で発明されたということだ。
だから継続に一番近いのがgotoなのではなく、継続の最も基本的な部分は正にgotoの表示的意味のために作られたんだよ。
22デフォルトの名無しさん:2013/09/03(火) 10:20:51.41
要するにどれもノイマンマシンの機械語ではGOTOだし、
意味論では継続なんだよ。
23デフォルトの名無しさん:2013/09/03(火) 10:32:40.98
ユークリッドの幾何学しか幾何学と呼んではいけないみたいだな
24デフォルトの名無しさん:2013/09/03(火) 15:27:31.04
部分リストを見つける関数って
srfi
とかにないのでしょうか
自分で作るしかない?

(find-sub-list (..... 1 2 3 ....) (1 2 3) )
=> 123 の場所
25はちみつ餃子 ◆8X2XSCHEME :2013/09/03(火) 20:15:35.08
>>24
たぶん無い。
汎用的にしようとすると比較関数に何を使うかでバリエーションを作るかオプショナル引数で取るかのいずれかが必要になるので、
仕様をまとめようとすると意外に面倒くさい話になると思う。
26デフォルトの名無しさん:2013/09/03(火) 20:15:36.60
util.match は…
27デフォルトの名無しさん:2013/09/06(金) 20:11:31.90
Lisperはこの世のゴミ
はやくGCされろ
28デフォルトの名無しさん:2013/09/06(金) 20:27:54.47
突発的に感情が高ぶる病気
専門家にご相談ください
29デフォルトの名無しさん:2013/09/06(金) 21:45:39.03
LISP以外では格好がつかない
30デフォルトの名無しさん:2013/09/08(日) 01:50:51.75
matchマクロで
circular-list
だけマッチさせる事ってできないの?
31デフォルトの名無しさん:2013/09/08(日) 02:05:04.39
matchマクロを自分で書こうとしてるのだけど
(match v ((x ...) x))
の ... を実装することができない。
どんな仕組みで実装してるのだろう
32はちみつ餃子 ◆8X2XSCHEME :2013/09/08(日) 02:44:34.18
パターンマッチライブラリって色々あるんじゃねーの?
どれの話?
っていうか Common Lisp の話?
33デフォルトの名無しさん:2013/09/08(日) 02:54:58.41
(define-syntax ellipses-syntax-test
(syntax-rules ( ... )
((_ x ... )
(list x ))
))
(ellipses-syntax-test 7 ...)
> '(7)

これが出来ないのです
34はちみつ餃子 ◆8X2XSCHEME :2013/09/08(日) 03:27:54.16
>>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はちみつ餃子 ◆8X2XSCHEME :2013/09/08(日) 03:56:43.63
R7RS だと非常に簡単に回避する方法が用意されてる。
syntax-rules が従来よりひとつ多く引数を取ることができ、
... のかわりに使う省略子を指定できる。

(define-syntax ellipses-syntax-test
(syntax-rules :: (...)
((_ x ... )
(list x))))

(ellipses-syntax-test 7 ...)

この場合は省略子は使ってないので適当な識別子を書いておけばいい。
36はちみつ餃子 ◆8X2XSCHEME :2013/09/08(日) 03:59:25.76
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デフォルトの名無しさん:2013/09/11(水) 22:54:38.15
r6rs なら (... ...) が使えない?
ttp://www.r6rs.org/final/html/r6rs/r6rs-Z-H-14.html
38はちみつ餃子 ◆8X2XSCHEME :2013/09/12(木) 00:22:55.50
syntax-rules がネストした場合、
外側が展開されたときに (... ...) が ... に置換えられるということであって、
リテラルとしての ... を表すときに (... ...) が使えるという意味ではないよ。

ところで syntax->datum で文脈を剥してから ... と eqv? で比較するよりも
free-identifier=? で比較した方が R6RS らしいかな。
39デフォルトの名無しさん:2013/09/12(木) 00:35:28.64
define-macroだけではmactchマクロ作れないって事でいいの?
40はちみつ餃子 ◆8X2XSCHEME :2013/09/12(木) 00:39:02.06
だけってどういうこと?
使える構文が define-macro だけってこと?
そりゃ無理ぽ。
41デフォルトの名無しさん:2013/09/16(月) 12:02:56.16
みんなSECDマシンってなんて発音?
セクド?
エスーイーシーディー?
42はちみつ餃子 ◆8X2XSCHEME :2013/09/16(月) 13:00:13.00
困ったときは Google 様に聞いてみよう。

http://translate.google.com/#en/ja/secd

入力ボックスの右下にあるスピーカーボタンをクリックすると発音を聞けるよ。
あえてカタカナ表記するなら「セキッド」に聞こえる。
43デフォルトの名無しさん:2013/09/16(月) 13:10:20.04
>>42
間違って結果側の右下押したら
「エスイーシーディー」
とか言われてしまって?????ってなっちゃった
左の英語入力ボックスの方だと
セクィッドとセキッドの間くらいに聞こえるね
44デフォルトの名無しさん:2013/09/16(月) 18:29:28.62
>>42
IBM の発音は イビーム だったのか…。
45デフォルトの名無しさん:2013/09/16(月) 18:38:17.33
>>44
言語設定が英語以外になってね?w
フランス語やドイツ語とかだとイビエムって感じに聞こえるけど、
英語ならアイビーエムってけっこうはっきり聞こえるぞw
46デフォルトの名無しさん:2013/09/16(月) 18:45:14.43
>>42
英語の略語?ってアルファベットを順番に発音するのが正しいと思ってた
DMAC ディーマック? ディエムエーシー?
clos シーロス? シーエルオーエス?
それにgoogle翻訳とかweblioとかの発音ってとこまで正しいのか気になる
47デフォルトの名無しさん:2013/09/20(金) 06:21:04.44
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はちみつ餃子 ◆8X2XSCHEME :2013/09/20(金) 12:39:53.18
>>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デフォルトの名無しさん:2013/09/21(土) 02:38:20.37
Windows7 の lispbox の slime で portableAllegroServer を動かしたい
とかいう質問はこのスレでいいのでしょうか?
50デフォルトの名無しさん:2013/09/21(土) 02:40:49.80
いいんじゃないの
答えられる人がいるかどうかはさておき
51デフォルトの名無しさん:2013/09/25(水) 03:53:03.09
>>47-48

srfi-53
使うと、驚くほど簡単にreverse-deepできる
なんでsrfi-53はwithdrawnなんだろう
こんなに便利なのに
52デフォルトの名無しさん:2013/09/25(水) 17:52:48.87
ここに議論の記録があるよ。
何を言いたいのかよくわからないので英語がわかるひと解説よろ。

http://srfi.schemers.org/srfi-53/mail-archive/threads.html
53デフォルトの名無しさん:2013/09/26(木) 08:29:24.29
syntax-rules
が名前の衝突を回避してくれるのはletで導入した変数だけ?
自由変数として導入した変数は処理系依存なのかな?
54デフォルトの名無しさん:2013/09/26(木) 09:12:36.93
自由変数もするよ
http://codepad.org/mDVMEs2U
55デフォルトの名無しさん:2013/09/30(月) 10:15:52.82
マクロっていつ使うの?
56デフォルトの名無しさん:2013/09/30(月) 10:27:13.86
今でしょ!
57デフォルトの名無しさん:2013/09/30(月) 23:40:27.80
そういうのはいいから。
58デフォルトの名無しさん:2013/10/01(火) 21:20:17.90
クールな返しにワラタ
59はちみつ餃子 ◆8X2XSCHEME :2013/10/02(水) 18:51:09.51
On Lisp にわかりやすい指針が書かれてる。
マクロじゃなきゃ出来ないことをするときにマクロを使う。
逆にマクロでなくても出来ることにマクロは使わない方がいい。

要するに最後の手段なので普通のプログラムではマクロ定義の割合はかなり小さいことの方が多いと思う。
具体的にどういうときに使うかを知りたければ On Lisp はバランスのよい本だと思うよ。
60デフォルトの名無しさん:2013/10/02(水) 19:00:31.59
OnLispはマクロの手前までしか読んでないなあ
読まねば
61はちみつ餃子 ◆8X2XSCHEME :2013/10/02(水) 19:14:20.67
マクロをクローズアップしたような本もいくつかあるけど、
そういうのだとマクロの使用が既に前提になってるから
「使うことになったらこんな風に書けるよ」って感じなわけで
言語全体の中での位置付けがわかり難くて
「いつ使うか」ということに対する解は不充分なことがあると思う。

だから、全体を俯瞰しながらマクロの使いどころを解説している
という意味で On Lisp のことをバランスが良いと評した。
62デフォルトの名無しさん:2013/10/02(水) 22:43:41.98
というか、OnLispってマクロの本だよね?
63はちみつ餃子 ◆8X2XSCHEME :2013/10/02(水) 23:07:00.84
そうだよ。
でも言語全体の中でのマクロの立ち位置がわかるというか
「いつ使うか」がわかりやすい本ってこと。
64デフォルトの名無しさん:2013/10/02(水) 23:30:07.69
On Lispは訳本がひどいので原著がオススメ
65デフォルトの名無しさん:2013/10/03(木) 00:14:54.37
原著はタダですしねぇ
66はちみつ餃子 ◆8X2XSCHEME :2013/10/03(木) 00:37:13.86
訳書もドラフト版はタダで読めるし、基本的な考え方だけならそれで充分だと思うけど。
でも、そんなに高価なわけじゃないし買ってやれよ。 (俺は買ってないけど。)
67デフォルトの名無しさん:2013/10/03(木) 01:40:35.86
Let Over Lambdaの日本語訳の訳の品質ってどうなんでしょう?
実店舗で見かけないので読んだ人の意見が聴きたいです。

訳も原著も通販位でしか買えそうにないので、訳がまずそうなら原著買いたいです。
68デフォルトの名無しさん:2013/10/03(木) 03:16:12.14
うーん、自分は特に変だとは思わなかったけど…
69デフォルトの名無しさん:2013/10/03(木) 06:32:43.85
LOL は難しかったので途中で投げ出した。翻訳は別に気にならなかったけど、何言ってるかさっぱりだった。あれは原文でも読みにくい気がする。
70デフォルトの名無しさん:2013/10/03(木) 08:22:51.27
LOLむずいよね
一応全部読んだけど血肉になった感触がない
71デフォルトの名無しさん:2013/10/03(木) 11:30:30.37
一回読んだだけでは血肉にはならないでしょ
サンプルコードを一行一行丁寧に追った上で何周もして理解を深めるべきレベルの本
72デフォルトの名無しさん:2013/10/03(木) 19:22:47.37
みなさんありがとうございます。
翻訳のクオリティは問題無さそうですね
ただ流石に難しそうですが、、
73デフォルトの名無しさん:2013/10/03(木) 23:21:50.43
LOL を読むより、もしまだなら、PAIP をお勧めする。あれはホンモノだ。
74デフォルトの名無しさん:2013/10/04(金) 02:34:43.08
LOL って、 Let Over Lambda なのか、Land Of Lisp なのか…
75デフォルトの名無しさん:2013/10/04(金) 02:35:43.73
Lisp in Small PiecesとThe Art of the Metaobject Protocolも忘れずに
76デフォルトの名無しさん:2013/10/04(金) 02:37:32.73
LOL = Let Over Lambda
LoL = Land of Lisp
77デフォルトの名無しさん:2013/10/04(金) 06:22:06.27
SYJL = 素数夜曲:女王陛下のLISP
78デフォルトの名無しさん:2013/10/04(金) 07:45:56.78
ONLS = On Lisp
79デフォルトの名無しさん:2013/10/04(金) 10:08:22.84
FE = 深町英太郎
80デフォルトの名無しさん:2013/10/04(金) 15:46:27.80
晒すなやw
81デフォルトの名無しさん:2013/10/04(金) 23:34:47.65
Structure and Interpretation of Computer Programs = WH(和田本)
82デフォルトの名無しさん:2013/10/05(土) 00:10:53.74
アマゾンのレビューに Let Over Lambda は On Lisp の続編て書いてあるけど、もしかしてこれもマクロの本ですか?
勘弁して
83デフォルトの名無しさん:2013/10/05(土) 00:25:28.76
>>82
はい
84デフォルトの名無しさん:2013/10/05(土) 00:29:11.36
むしろマクロ過激派の筆頭エヴァンジェリストなんじゃないかあの本は
85デフォルトの名無しさん:2013/10/05(土) 00:37:27.26
マクロとは何ぞや、を知らない状態で読んだ時 On Lisp より LOL の方が読みやすかったよ
86デフォルトの名無しさん:2013/10/05(土) 00:38:50.66
LOL のマクロは何かわからんがすごい、と思うけど使う気になれない。本流じゃないと思う。
87デフォルトの名無しさん:2013/10/05(土) 03:02:10.57
マクロ好きな人って、他人のマクロ定義を見ても普通のlispコードと同じ程度にはバグがないことを理解できるのだろうか

defmacro が出てくるたびに、 ' と ` と , ばっかりのコードを読まされるこっちの身にもなってほしい
88デフォルトの名無しさん:2013/10/05(土) 03:15:58.31
( ' と ` )
89デフォルトの名無しさん:2013/10/05(土) 03:52:50.14
マクロに辟易してそうな顔、いいね
90デフォルトの名無しさん:2013/10/05(土) 06:15:52.71
( ' λ ` )
91はちみつ餃子 ◆8X2XSCHEME :2013/10/05(土) 06:17:39.27
中国人風だな。
92デフォルトの名無しさん:2013/10/05(土) 06:24:46.24
( ^ マ ^ λ)
93デフォルトの名無しさん:2013/10/05(土) 14:15:32.88
>>87
マクロは読むものじゃなく、展開するものだね
94デフォルトの名無しさん:2013/10/05(土) 21:08:04.73
コードは読むものじゃなく、実行するものだね
95デフォルトの名無しさん:2013/10/05(土) 21:22:29.37
macroexpandと逐次実行がナウなヤングにバカウケ
96デフォルトの名無しさん:2013/10/06(日) 00:20:17.96
マクロのバグもそりゃあるだろうけど、そんなにデバッグ大変かな?
あんまり苦労したことないなぁ。展開すれば分かるし。
97デフォルトの名無しさん:2013/10/06(日) 17:19:29.54
>>96
逆に考えるんだ
「展開しなければ分からない」と
98デフォルトの名無しさん:2013/10/07(月) 12:44:52.40
アナフォリックマクロっていうのはsyntax-rulesで書くのは絶対に不可能なんですか?
99デフォルトの名無しさん:2013/10/07(月) 17:00:18.95
syntax-rulesでは無理だね
syntax-caseなんかを使えば書けるよ
100はちみつ餃子 ◆8X2XSCHEME :2013/10/07(月) 18:05:27.15
>>98
可能と言えば可能ではある。
まわりくどいし、面倒なだけで割にあわないと思うけどね。
101デフォルトの名無しさん:2013/10/08(火) 00:19:07.16
@naoiwataってやつが書籍違法ダウンロードしてるようだけどこれもLisperなの?
https://twitter.com/naoiwata/status/367919124573204480
102デフォルトの名無しさん:2013/10/08(火) 02:33:23.88
法律論とクラッキングは横においておいて、
無断UPは徹底的に見つけ出して厳罰に処すべきだと思うが、どんなコンテンツであろうと無断DLはどんどんやっていいというスタイルこそが正しいWEBのあり方だと思う
103デフォルトの名無しさん:2013/10/08(火) 06:28:28.27
俺は無断DLはしないよ
ローカルにキャッシュするだけだよ
104はちみつ餃子 ◆8X2XSCHEME :2013/10/08(火) 15:02:12.97
>>101
ツイッタに報告しようかと思ったが著作物について権利がある人や代理人でないと違反報告できないっぽい。
https://support.twitter.com/articles/486421-#6
105デフォルトの名無しさん:2013/10/08(火) 18:32:42.54
>>99
ググってみて出来るみたいだねってことが分かった
106デフォルトの名無しさん:2013/10/08(火) 19:06:47.83
>>101
書籍のダウンロードは違法じゃない

著作権法第三十条
>著作権の目的となつている著作物(以下この款において単に「著作物」という。)は(略)次に掲げる場合を除き、その使用する者が複製することができる。
>三 著作権を侵害する自動公衆送信を受信して行うデジタル方式の録音又は録画を、その事実を知りながら行う場合
                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
107デフォルトの名無しさん:2013/10/09(水) 02:13:22.81
まあネット的には可燃案件なんですけどね
108デフォルトの名無しさん:2013/10/09(水) 03:42:50.37
>>101
しょしんしゃなので sublime text というのをまだつかってます(汗

みたいなツイートとかイラッとくるなw金払わずに使い続けてそうだしw
つーかST2を初心者用エディタ呼ばわりしてるところもイラつくし、使ってもないEmacsやVimを上に見てるところもムカつく。権威主義?ワナビー?
sublime text というの、って言い回しの「というの」の気持ち悪さ。自分はこれ初心者用エディタって知ってますよ、一歩引いたうえで仕方なく使ってるんですよアピール。
周りのチンポどもも、こんな奴甘やかすなよ。童貞ばかりで本当に気持ち悪い。
109デフォルトの名無しさん:2013/10/09(水) 03:59:06.25
尼のウィッシュリストを通してギフトが届いたら、すかさず他の本のリンクを貼りましょう。
110はちみつ餃子 ◆8X2XSCHEME :2013/10/09(水) 10:12:29.14
>>108
Emacs や Vim が初心者にとって使い難い (ハードルが高い) のは試してみるまでもなく有名な事実だろ。
それを権威主義とはさすがに言い掛かりが過ぎる。
111デフォルトの名無しさん:2013/10/09(水) 11:05:51.27
>尼のウィッシュリスト

すごい、淫靡なものを想像しちゃった…
112 ◆QZschizo.ptH :2013/10/09(水) 18:44:31.42
lispのためなら!

この前やっと原始lispのコードを読みました,意外にいける気がしてきました
113はちみつ餃子 ◆8X2XSCHEME :2013/10/09(水) 23:01:27.64
そうか。
114はちみつ餃子 ◆8X2XSCHEME :2013/10/10(木) 03:10:30.38
GNU Make 4.0 に Guile が組込まれたんだってさ。
http://lists.gnu.org/archive/html/info-gnu/2013-10/msg00006.html
Perl やら Ruby やら Python に比べればマシな選択ではあると思うけど、
そもそもそういう拡張言語を組込むのが余計っていう気もする。
どう思う?
115デフォルトの名無しさん:2013/10/10(木) 05:46:26.56
これが後の「待ちGuile」事件である
116デフォルトの名無しさん:2013/10/10(木) 06:25:05.59
MakefileをS式で書けるなら歓迎する
117デフォルトの名無しさん:2013/10/10(木) 08:13:01.22
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デフォルトの名無しさん:2013/10/10(木) 08:27:11.09
http://ja.m.wikipedia.org/wiki/GNU_Guile
schemeそのままだと組み込みと相性が悪い感じで変えてあるみたいなこと書いてあったので、それに合わせたベストプラクティスがあるんだろうな。
makeは、OS標準ディレクトリにインストールするレイヤーのもの作ってないし、ビルドシステムも言語ごとにつかってるし、配備もデプロイツールも使ってるので、最近使ってない、、、
119デフォルトの名無しさん:2013/10/10(木) 12:15:12.83
Makefileを直書きするときにschemeでも書けるようになったということ?
でもmake使う層はautoconfに移行してるんじゃないのか?

と言っても俺は5年以上前にsconsへ移行してから事情はよく知らないんですけどね
120デフォルトの名無しさん:2013/10/10(木) 13:27:26.48
rms「GNUの開発言語はLispだから(震え声」
121デフォルトの名無しさん:2013/10/10(木) 16:01:39.51
schemeの開発環境のオススメを教えてほしい。
windowsです。
122はちみつ餃子 ◆8X2XSCHEME :2013/10/10(木) 17:25:07.62
どういう状況で使う予定とか自分のスキルとか、もうちょっと要望を言えよ。
どんな環境でも善し悪しがあるでよ。
123デフォルトの名無しさん:2013/10/10(木) 20:28:54.32
>>122
偉そうに
124デフォルトの名無しさん:2013/10/11(金) 00:08:35.55
DrRacketってやつを家では使ってるけど、大学ではemacsとGaucheを使うらしく、どうすべきか悩んでる。
ちなみに、現段階だとCとjavaを他に使うぐらい。
Cはvimで書いてて、javaはどうしようか悩んでるところ。
開発環境ってそれなりに揃える(というか同じ系統?)にすべきかな。
まだプログラミング経験が浅いので突っ込みどころたくさんあるだろうけど、お手柔らかにアドバイスお願いします
125デフォルトの名無しさん:2013/10/11(金) 00:18:46.06
大学でGausheなのか
なういね!
126デフォルトの名無しさん:2013/10/11(金) 00:22:03.75
環境整えるのも、勉強だと思ふ。
Windowsなら仮想環境でLinuxで動かす、なども含めて。
127デフォルトの名無しさん:2013/10/11(金) 00:29:57.13
>>124
大学の方が言語を変えるまで留年し続ける呪いをかけといた
128デフォルトの名無しさん:2013/10/11(金) 00:36:31.02
>>125
けっこう最近のものなのか。

>>126
学校に合わせるために自力で環境整えろってことでしょうか。
129デフォルトの名無しさん:2013/10/11(金) 01:11:57.37
MSが用意したもの以外を使うならwindowsよりlinux,macの方が向いてると思う
130デフォルトの名無しさん:2013/10/11(金) 01:14:45.26
>>129
持ち運びできるサイズのノートパソコンが欲しいので、Macの購入は検討していますが、自宅では当面はWindowsになるかと思います。。
ちなみに大学はMacです。
131はちみつ餃子 ◆8X2XSCHEME :2013/10/11(金) 01:41:25.71
>>124
Scheme は処理系ごとの拡張が多いからなぁ。
入門レベルの範囲内ならどれを使ってもそれほど大きな差はないと思うけど、
これから入門する人にとってはその小さな差でハマる可能性もあるし、
大学で Emacs と Gauche を使うというならそれに合わせといた方が良いと思うよ。

でも、ひとつに固執する必要もないと思う。
他にも色々と入れておいて、大学でやるのとは別に色々と試してみてもいいんじゃないかな。
132デフォルトの名無しさん:2013/10/11(金) 02:00:32.58
>>131
なるほど。
とりあえず家ではいくつかの環境を用意しつつもemacs+Gauche主体でやってみます。
133デフォルトの名無しさん:2013/10/11(金) 02:39:22.27
X-WindowなしのフルスクリーンEmacsで勉強すると気分出るぞ。
134 ◆QZschizo.ptH :2013/10/12(土) 00:09:31.64
>>133
それたぶん日本語がらみでアウト…
135デフォルトの名無しさん:2013/10/12(土) 00:53:09.94
>>134
いや大丈夫だろ
コンソールでemacs使ったことない?
136デフォルトの名無しさん:2013/10/12(土) 02:43:04.09
>>135
SunOS 4.1 でなら…
137デフォルトの名無しさん:2013/10/12(土) 11:03:37.53
とりあえずコンソールが適当な漢字コードで日本語を表示できれば、
emacs単独でコンソールに出力する漢字コードをいくらでも変更できるからね
screenとかを使うのもいいけど
138デフォルトの名無しさん:2013/10/12(土) 11:57:38.65
手元がWindowsでLinuxか何かにログインして使うなら、PuTTYのフルスクリーンモードにすると楽しい。
139デフォルトの名無しさん:2013/10/12(土) 14:34:20.88
http://homepage1.nifty.com/~skz/Scheme/
「好きい夢」きもすぎワロタ笑
140デフォルトの名無しさん:2013/10/12(土) 15:47:33.10
中高生向けの事業だとしたらすばら
141デフォルトの名無しさん:2013/10/12(土) 23:44:18.45
しくない。
142デフォルトの名無しさん:2013/10/12(土) 23:46:36.04
「好きい夢」って名前は読むだけで恥ずかしくなるな
143デフォルトの名無しさん:2013/10/13(日) 00:03:12.45
本人は上手いこと言ってるつもりなんだろうな。
144デフォルトの名無しさん:2013/10/13(日) 00:13:38.61
アニヲタっぽい
145デフォルトの名無しさん:2013/10/13(日) 00:32:11.13
それより飲み屋だな
146デフォルトの名無しさん:2013/10/13(日) 00:37:44.49
>>145
わかる。 オッサン的センス
147デフォルトの名無しさん:2013/10/13(日) 01:51:47.27
またまたカッコつけちゃって〜頼むよ〜
148デフォルトの名無しさん:2013/10/13(日) 03:01:22.06
>>146
実際オッサンだからセンスがオッサンなのは仕方なくね?
149デフォルトの名無しさん:2013/10/13(日) 04:33:23.12
好き芋

秋だなぁ〜
150デフォルトの名無しさん:2013/10/13(日) 11:04:42.35
好き淫夢(察し)
151デフォルトの名無しさん:2013/10/13(日) 11:09:15.83
>>150
ホモじゃなくても死滅しろ
152デフォルトの名無しさん:2013/10/13(日) 11:10:45.89
ガイスティールは淫夢厨だったンゴwwwwwwwwwwwwwwwwww
153デフォルトの名無しさん:2013/10/13(日) 11:37:27.03
たまげたなあ
154デフォルトの名無しさん:2013/10/13(日) 15:36:56.61
>>139 のネーミングセンスも >>148 の寛大さも好き
155デフォルトの名無しさん:2013/10/13(日) 16:10:41.44
>>154
なに偉そうに評価してるわけ?
156デフォルトの名無しさん:2013/10/13(日) 16:17:10.35
360度評価
157デフォルトの名無しさん:2013/10/13(日) 16:26:10.78
当人がオッサンだろうが何だろうが事業としてやるんだったらターゲットにアピールできているかどうかだけが肝心。
中高生あたりに対してもウケ狙いであえてオッサンセンスでやってみるというのも有りだとは思うけど、この場合は笑わせてるつもりで笑われてるだけの道化。

中高生向けにはもっと中二病 (GEEK SENSE) っぽい名前の方がいいだろ jk
shiro さんの会社名 Scheme Arts とか簡潔なのに超かっけー。
意味はとりあえず置いといて響きだけで濡れる。 ステキ!抱いて!ってなる。
158デフォルトの名無しさん:2013/10/13(日) 16:31:33.91
そういうのはすごく失礼だからやめよう(提案)
159デフォルトの名無しさん:2013/10/13(日) 16:49:49.61
日本のLispコミュニティなんて本を積み上げるだけで生産性皆無の口先インテリもどきばかりだから
せめて邪魔しないで差し上げろ
160デフォルトの名無しさん:2013/10/13(日) 16:51:35.75
http://r-2ch.com/t/livejupiter/1378495564/#54
改変ネタ

お盆に、親父と長野の親戚の家にいった。
伯父(高卒市議)も来ていた。

伯父「○○君!小さい頃よくだっこしてやったんだぞ!がっはっはー」
俺 「覚えていますよ」
伯父「どんな名前にしたんだ?」
俺 「スキームアーツ、あっ、 Scheme Arts です」
伯父「そうか、 Scheme Arts か!高校時代遊びすぎたんだろ!でもよかったな!」
  「お前と同じ年の息子の××覚えているだろ!好きい夢だぞ!(勝利者宣言)」
親父「無言・・・(瞳が潤んでいた)」
伯父「おい、好きい夢こっちこい(息子の××を呼ぶ)」
  「○○も大学生だ。○○と昔よく遊んだだろ!」

向こうでも大学の話をしていたらしい××が鼻高々でやってきた。
××「(馴れ馴れしく)○○、久しぶりー、元気!」
  「あっ、叔父さん、こんにちは、俺、今年から好きい夢始めました。」
親父「そうか、大きくなったな」
××「好きい夢やってるんですよー(勝利者宣言)○○君はなにやってるの?」
俺 「Scheme Arts www」

ニヤついている伯父を尻目に、一瞬にして××の顔色が変わった。
伯父「○○と取引してやれよw」
××「(しばし、絶句)・・・みっともないからやめてくれよ親父」
伯父「?」
動揺しまくりの××は伯父を速攻連れだした。
以後、伯父親子は、俺達のいるテーブルに加わらなかった。

久しぶりに無口な親父の晴れ晴れとした顔をみた。
帰り際、充血した目をした伯父と目があった。
161デフォルトの名無しさん:2013/10/13(日) 17:38:49.76
好きい夢の方は現行で日本のLispコミュニティに
多大な貢献をされておられる5人に間違いなく入るからな
恐れ多いこと書くんじゃねーよ穀潰しども
162デフォルトの名無しさん:2013/10/13(日) 17:51:25.74
>>160
お前もセンスねーな。

>>161
貢献がないわけじゃないが、5人の内にっていうのは言いすぎだろー。
163デフォルトの名無しさん:2013/10/13(日) 18:00:37.33
今一番注目の女子schemerって誰ですか?
164デフォルトの名無しさん:2013/10/13(日) 18:06:45.45
あやぴー
165デフォルトの名無しさん:2013/10/13(日) 18:09:46.61
サスマンの嫁
166デフォルトの名無しさん:2013/10/13(日) 18:10:59.60
女王陛下
167デフォルトの名無しさん:2013/10/13(日) 18:17:28.16
彼のLispに対するで甚大な仕事量を無償で公開し続けていただけることに頭が下がる

lispスゲー lispスゲーって騒ぎ立ててる脳タリン共は見習え
それかcametanを仰いで情報を引き出せ執筆させるのじゃ!
168デフォルトの名無しさん:2013/10/13(日) 18:23:04.77
>>164
あやぴーって腕いいの?
169デフォルトの名無しさん:2013/10/13(日) 18:29:43.44
ホモはなんjに帰って、どうぞ
170デフォルトの名無しさん:2013/10/13(日) 21:06:49.75
>>168
さあ?
プロのプログラマみたいだし、SCHEMEもほどほどには使えるんじゃね。
171はちみつ餃子 ◆8X2XSCHEME :2013/10/13(日) 21:34:07.50
>>167
cametan も割といいかげんなこと言ってると思う。
歴史的事情についてはおにぎりの人とか、
理論面はにゃーんの人とかが詳しいという印象。
172デフォルトの名無しさん:2013/10/13(日) 22:32:51.85
173デフォルトの名無しさん:2013/10/13(日) 23:10:07.90
その話はもう済んだ
174デフォルトの名無しさん:2013/10/14(月) 00:21:46.73
勝手に終わらせるなよ
175デフォルトの名無しさん:2013/10/14(月) 03:32:00.45
gaucheしかインストール成功しなかったのでよく分からないのですが、
gauche.arrayみたいなモジュールの中の関数はどれだけ可搬性があるのでしょうか

たとえば、make-arrayの引数にshapeを使うようなスタイルは他のscheme実装でもやってるのでしょうか
176はちみつ餃子 ◆8X2XSCHEME :2013/10/14(月) 12:28:08.33
>>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デフォルトの名無しさん:2013/10/14(月) 15:47:39.69
スキームアッー
178デフォルトの名無しさん:2013/10/14(月) 15:51:10.60
スキームとアッーな関係になるなら本望
179デフォルトの名無しさん:2013/10/14(月) 18:27:13.24
スティール兄貴が黙ってないんだぜ?
180デフォルトの名無しさん:2013/10/14(月) 18:28:55.02
He's so guy.
181デフォルトの名無しさん:2013/10/14(月) 22:47:09.53
>>160
信越ってひとくくりにするけど新潟と長野は別だから (震え声
182デフォルトの名無しさん:2013/10/14(月) 23:58:39.59
信越というくくり方の意味を初めて知った
183デフォルトの名無しさん:2013/10/15(火) 04:41:29.10
Schemeでclassとか構造体を表現する標準は
結局どれになるのでしょうか
srfiでまとめられていますか?
184デフォルトの名無しさん:2013/10/15(火) 11:52:54.68
構造体なら SRFI-9 の define-record-type が R7RS に採用されたのでそれが標準になるのでは
185デフォルトの名無しさん:2013/10/15(火) 13:03:15.84
スーパーラムオブラザーズはまだですか?
186はちみつ餃子 ◆8X2XSCHEME :2013/10/15(火) 16:06:59.09
>>183
R6RS では SRFI-76 がベースだな。
187デフォルトの名無しさん:2013/10/15(火) 16:18:52.11
R6RS は要らない子
188はちみつ餃子 ◆8X2XSCHEME :2013/10/15(火) 16:40:44.73
んなこたーない。
189デフォルトの名無しさん:2013/10/15(火) 17:51:57.97
R20RSとか征くとどうなってるんだろうな
190デフォルトの名無しさん:2013/10/15(火) 19:39:07.27
.Netかj2eeに対抗できる
191デフォルトの名無しさん:2013/10/15(火) 20:40:34.51
そこ頃には .Net も j2ee も廃れてるだろ。 常識的に考えて。
192デフォルトの名無しさん:2013/10/15(火) 22:42:01.15
.netもjavaもiso規格で残るから・・・(震え声)
193デフォルトの名無しさん:2013/10/15(火) 23:57:12.96
さすがに20回も改訂したらスタックオーバーフローは起こさなくてもメタメタなものになるだろな。
それよりもCommonLispの改訂版を作るべきだ。
194デフォルトの名無しさん:2013/10/16(水) 11:26:20.03
末尾再帰最適化、ソケット、スレッド、
正規表現を盛り込まれたCommonLispが欲しい
195デフォルトの名無しさん:2013/10/16(水) 21:07:38.55
SICPって第1版と第2版で内容的にどれくらい違いがあるの?
196デフォルトの名無しさん:2013/10/16(水) 21:18:55.88
日本語の正規表現処理がまともにできるのはGaucheだけ
と数年前に聞いたのだけど,今も状況は同じなの?
Mecab,CabochaのバインディングもGaucheしか存在しないみたいだけど
197デフォルトの名無しさん:2013/10/16(水) 23:49:01.20
CabochaのGaucheバインディングの作者が
今はpython使ってるみたいだけど
何があったんだろう
198はちみつ餃子 ◆8X2XSCHEME :2013/10/17(木) 08:02:16.02
>>196
簡単に試してみた。 Sagittarius, Racket, Ypsilon, Mosh は出来るっぽい。
エッジケースまで確かめたわけじゃないから「まともに」というのがどのあたりまでのことを言っているのかによって判断が分かれるかもしんないけど、
さっぱり話にならないというほどではないと思う。
199デフォルトの名無しさん:2013/10/17(木) 13:38:21.21
>>194
これよりも先にコマンドライン引数を入れてほしいわ
200はちみつ餃子 ◆8X2XSCHEME :2013/10/18(金) 00:56:22.76
SRFI-115 が正規表現を提案してる。
http://srfi.schemers.org/srfi-115/srfi-115.html
R6RS 以降なら Unicode を想定できるから日本語も含めたマルチバイト/ワイド文字の正規表現も規格化し易くなっていると思う。
201デフォルトの名無しさん:2013/10/18(金) 22:47:39.40
>>184 >>186
r6rsとr7rsに互換性が無いってこと?
202はちみつ餃子 ◆8X2XSCHEME :2013/10/18(金) 23:38:12.95
何を今更。
203デフォルトの名無しさん:2013/10/19(土) 00:09:30.11
R6RSは黒歴史扱い。
204はちみつ餃子 ◆8X2XSCHEME :2013/10/19(土) 17:05:26.77
R6RS 自体はそんなに悪くないと俺は思ってんだよな。

前にも書いたことだけど、機能は相互作用があるものだからある部分の詳細を詰めようとすれば
他の部分にも決めなきゃならないことがどんどん出てきて、最終的にはある程度の大きさになるのは仕方ない。

R6RS が批判されたのは決定プロセスが急ぎすぎたということ。
出てきた仕様の穴を埋めることに終始してしまい、
大元のモデルが妥当かという議論が欠けているように見える。
だから R6RS は R6RS の方針に於いての穴はそんなにないけど、
そもそも R6RS の基本思想が妥当じゃない (Scheme 的でない) かもしれないという話だと思ってる。
205デフォルトの名無しさん:2013/10/20(日) 00:12:15.03
emacsでgaucheを使っています
goshのプロンプト画面で、common lispのslimeのように,を入力したらメニュー(slime-handle-repl-shortcut)が表示されるようにできないのでしょうか
設定方法があるかもしれませんが探せなかったので質問しました
206デフォルトの名無しさん:2013/10/20(日) 01:00:15.83
Gaucheのswankサーバが無かったっけ?
それでSLIMEを使えばいいのでは。
207デフォルトの名無しさん:2013/10/20(日) 07:11:09.28
gaucheのswankサーバは古いからそのままだと動かないよ
208デフォルトの名無しさん:2013/10/20(日) 22:03:38.37
slime-handle-repl-shortcut
ってどんな機能?
209デフォルトの名無しさん:2013/10/22(火) 05:45:57.07
> slime-handle-repl-shortcut
slime-repl-mode のキー "," に割り当てられている。

REPLの行の先頭で "," を入力すると、
SLIMEのコマンドを入力するミニバッファ(TABで補完可)が出る。
210デフォルトの名無しさん:2013/10/22(火) 07:13:06.15
slime ではない emacs でコマンド入力モードになったからと言って
何に対してコマンドを送ろうと言うのか。
211デフォルトの名無しさん:2013/10/23(水) 00:39:13.94
コマンドー
212デフォルトの名無しさん:2013/10/23(水) 02:16:35.22
Lispはゴミ
213はちみつ餃子 ◆8X2XSCHEME :2013/10/23(水) 07:54:20.87
そうか。
214デフォルトの名無しさん:2013/10/23(水) 08:05:28.00
そうだ
215デフォルトの名無しさん:2013/10/23(水) 14:59:23.04
>>212
ゴミもatomの集合なんだぜwwww
216デフォルトの名無しさん:2013/10/23(水) 15:38:37.16
SCHEME関連の質問はどこでするのが一番良い?
217デフォルトの名無しさん:2013/10/23(水) 21:06:36.55
ここでしょ
218デフォルトの名無しさん:2013/10/24(木) 08:41:25.55
>>216
Ruby厨を装って、
は?schemeってこんなこともできないの?劣化Rubyじゃん
みたいな風に質問するのおすすめ
219デフォルトの名無しさん:2013/10/24(木) 11:03:57.79
2chやTwitterでの基本的な煽り技だよね。
Ruby厨は実際にそんな感じだから説得力あるし。
220デフォルトの名無しさん:2013/10/24(木) 11:09:10.26
それ使わないほうがいいよ
まともな回答がついてないことが非常に多い
221デフォルトの名無しさん:2013/10/24(木) 11:34:37.43
>>219
>2chやTwitterでの基本的な煽り技だよね。

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


>Ruby厨は実際にそんな感じだから説得力あるし。

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


まともなRuby使いなら、RubyのルーツがLispにあるのを知っているから、
>>216みたいな質問はしないね
逆に、Lisp/SchemeのこんなことがRubyでもできるようにならないか?という事に関心を持つ
222デフォルトの名無しさん:2013/10/24(木) 11:55:05.68
Lispに有ってRubyにないものって何か有るか?
もうかなりの機能は吸収されただろうし、
されてないものは要らないと判断したものじゃないのか?
223デフォルトの名無しさん:2013/10/24(木) 11:56:03.21
s式
224デフォルトの名無しさん:2013/10/24(木) 12:28:39.19
型宣言とかディスアセンブルとか。
225デフォルトの名無しさん:2013/10/24(木) 12:44:40.42
アンチとか
226デフォルトの名無しさん:2013/10/24(木) 12:45:01.36
マクロ
227はちみつ餃子 ◆8X2XSCHEME :2013/10/24(木) 13:30:24.41
228デフォルトの名無しさん:2013/10/24(木) 13:44:04.00
>>225
ワラタけどそれはすでにあるような気がする
229デフォルトの名無しさん:2013/10/25(金) 03:48:28.37
>>222
大学の教育で使える堅い本
230デフォルトの名無しさん:2013/10/25(金) 05:41:22.94
SICPとLOL
231デフォルトの名無しさん:2013/10/26(土) 10:07:09.44
OL
232デフォルトの名無しさん:2013/10/26(土) 12:00:52.45
>>226
Ruby のボスであるまつもとゆきひろ氏は「マクロは拒否する」と書いてある。
http://www.rubyist.net/~matz/20060914.html#p01
つまり、 >>222 が言う要らないと判断したものなんじゃないか。
233デフォルトの名無しさん:2013/10/26(土) 14:13:33.64
100歩譲ってマクロを認めるとしても、ちゃんとした人が作って承認されたマクロだけを認めるべき
234デフォルトの名無しさん:2013/10/26(土) 14:28:56.48
235デフォルトの名無しさん:2013/10/26(土) 16:40:08.61
>>233
ちゃんとした人って何だよ。 そういうのはお前の脳内だけで勘弁な。
審査を経て承認されたものだけが取り込まれるのなら、マクロというよりただの構文糖じゃねーか。
236デフォルトの名無しさん:2013/10/26(土) 17:07:36.46
>>235
逆に言うと、マクロは糖衣構文だけにすべき
237デフォルトの名無しさん:2013/10/26(土) 17:45:37.89
>>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デフォルトの名無しさん:2013/10/26(土) 17:48:36.11
普通にコーディング規約で対処するべき階層の問題だと思うが
239デフォルトの名無しさん:2013/10/26(土) 17:53:27.25
マクロは未知の状況に対する保険ではなく、未知の不具合を生み出すリスクである
240デフォルトの名無しさん:2013/10/26(土) 18:01:13.17
ま、それもトレードオフだろ。 未知の状況に対処するんだから不具合だって未知のものが出てくることだって有るわな。
打てる手段が無いよりはやっつけ仕事でも出来ることがある方が良いってのがLISPの選択。
241デフォルトの名無しさん:2013/10/26(土) 18:05:44.17
マクロは、ただの書き換え程度ならまだかわいいんだけど、実行フローを表から隠すのがダメ
OnLispとかだと、新しい実行制御を組み込めるのが利点とか言ってるけど、使い捨てプログラムでもない限り、どう考えても害悪だと思う
242デフォルトの名無しさん:2013/10/26(土) 18:16:51.44
>>241
いや、それは逆だろ。 全く違うパラダイムでさえ隠蔽 (抽象化) できる方法じゃないか。
最初から欲しいパラダイムを提供している言語 (処理系) が有るならそれを使うべきではあるが、
場合によっては組み合わせたいことだって有るだろうし。
243デフォルトの名無しさん:2013/10/26(土) 18:29:07.73
Rubyの数式処理ソフトってないよね?
maximaを超えるものがない
244デフォルトの名無しさん:2013/10/26(土) 18:31:50.29
>>242
その抽象化が正しいことを場合によってはいちいち expand して確認しないといけない
表面上は綺麗に抽象化されているように見えも、展開したときに関数の実行順や実行回数がおかしなことになってる
245デフォルトの名無しさん:2013/10/26(土) 18:45:12.75
>>244
そりゃマクロじゃなくても同じことだろ。 いつだってバグを混入し得ることにかわりない。
問題があったときにマクロを直せばいいところを
隠蔽せずに書くってことはおかしな実行順や実行回数がないことを全ての箇所で確認しなきゃならないってことだぞ。
246デフォルトの名無しさん:2013/10/26(土) 18:59:30.85
>>245
マクロによる抽象化と関数による抽象化の一番の違いは、マクロがコード生成コードという点

次に制御構造をいじくるという点
具体的に言うと、特殊形式に渡した引数を評価する順番がまりごとに異なるという点

関数のデバッグみたいに、引数と値を比べて、関数を記述してあるソースを書き直して終わりってわけじゃないんだ
247デフォルトの名無しさん:2013/10/26(土) 19:06:23.92
俺は>>237の意見だな
目の前に解決しなきゃいけない問題があってあんまり検討してないけどマクロじゃなきゃできない気がするならマクロを使う
あとで高階関数でいいじゃんってなることが多いけど
248はちみつ餃子 ◆8X2XSCHEME :2013/10/26(土) 19:15:05.61
>>246
ここまで議論を眺めてて食い違っている点を理解した。
要するに >>246 は制御フローを弄るってところで既に忌避感を持ってるんだな。
OnLisp だって何も不要なところで制御フローを変えろと言ってるわけじゃない。

「制御フローを変えられればすっきり出来るからどうにかなんない?」
という他の言語でなら無茶ぶりと言える要求があったときに、
そんな無茶にもなんとか応えられますよというのが OnLisp が言ってることなんだよ。

制御フローを変えないより変えた方が良い状況になったならという前提を設定したときの話なんだから、
その前提条件が気に入らないというんじゃ噛み合わないよ。
249デフォルトの名無しさん:2013/10/26(土) 20:08:18.76
>>248
その前提を踏まえた上で、マクロの使用は、処理系がデフォルトで提供するようなきちんと検査された糖衣構文程度に留めるべき、というのが我々の意見

マクロつかったプログラミングしたいなら、型情報やフローがコードに陽に現れてる言語にマクロ機能を追加して、その言語でやるべき
Lispみたいにデータに型情報が隠れてる言語でやるのは勘弁してほしい
250デフォルトの名無しさん:2013/10/26(土) 20:21:07.56
出、出た〜www我々とか言って勝手に自分の意見が多数派奴〜www
251デフォルトの名無しさん:2013/10/26(土) 21:03:42.95
>>249
オレもその意見に賛同するよ
252はちみつ餃子 ◆8X2XSCHEME :2013/10/26(土) 21:17:04.09
>>249
踏まえるどころか更に大前提たる Lisp を否定しちゃってるじゃないの。
あらかじめ解くべき問題がはっきりしててそれに都合の良い言語があるならそれを使いますがな。
(なるべく慣れた Lisp を使いたいということも有り得るけど。)
Lisp プログラミングしてるときに面倒な問題に遭遇したら切り札としてマクロがありますよっていう話じゃん。
>>237 にも書かれてるけど「未知の状況に対する保険」なんだよ。
253デフォルトの名無しさん:2013/10/26(土) 21:30:48.18
>>252
解くべき問題のクラスはあらかじめはっきりしてる
マクロなしでも解けることだけは分かってる

未知の状況に対する保険ならば、それこそ、きちんとした人や組織が認めてみんなで使い古したマクロだけを使うべき
というか、そもそもそんな状況でマクロを使うべきではない

マクロこそLispだと主張するなら、我々はLispを否定する
254デフォルトの名無しさん:2013/10/26(土) 21:43:29.24
Lispは否定する自由も認めている
255はちみつ餃子 ◆8X2XSCHEME :2013/10/26(土) 22:13:23.27
>>253

マクロを使う利点をまとめると
- 見た目がすっきりする
- 構文に名前を付けられる
- 同じことを繰り返し書かなくてよくなる
といったところかな。

マクロは極論すればただ短く書けるだけなんだから、
マクロを使わなければ解けない問題というのは無いというのはあらためて言うまでもない。
マクロを積極的に使わなくても書ける、というのはその通り。

でも、それを言うならプログラムを手続きに小分けせずベタ書きしたって動きはするよ。
だけど、適度に分割したり組み合わせたりすることでわかりやすくしてるわけだよね。
そんでもって人によってどの程度の抽象化がわかりやすいかは違うわけだよね。
OnLisp にある prolog もどきがあなたのやり方にそぐわないということはもちろんあり得る。
動作がなんとなく見える程度に薄いマクロをあなたが定義する自由だってあるし、
全くマクロを使わない自由だってもちろん有って、 Lisp という言語はその自由を奪うことはない。

だけど、私があの Prolog もどきを使うとしたらなるべく隠蔽 (抽象化) したいと思うし、
そのためにはマクロは欠くことの出来ないものだとも思う。
それを「使うべきでない」などと言われる筋合いもない。
256デフォルトの名無しさん:2013/10/26(土) 23:41:33.16
勝手に脳内変換すると
独自マクロ=(C系の)コンパイラによる構文独自拡張って感じかな?
javaのAOPとかは、どこに当たるんだろう。
257デフォルトの名無しさん:2013/10/27(日) 02:11:50.37
例えば、ある言語で、その言語のコンパイラの構文解析器をユーザのコードから直接いじる機能があったとしたら、その機能に対してどうコメントするだろうか

例えば、ありとあらゆる要素を外見上区別できない形で表現できる高度に抽象化された言語で、コードに並んだ要素の置き換えや削除をするコードをそのコードの中の記号の羅列で自動生成する機能があったとしたら、その機能に対してどうコメントするだろうか

例えば、それらの機能が '`,@の羅列で定義されているとしたら、どうコメントするだろうか

他人の自由を最大限尊重し、メモ帳+コマンドプロンプトでschemeプログラムする大学生をも笑顔で見守る我々でも、やはり「使うべきではない」と言うであろう
258デフォルトの名無しさん:2013/10/27(日) 08:03:37.76
我々って誰やねん
259デフォルトの名無しさん:2013/10/27(日) 08:35:23.16
>>255
>OnLisp にある prolog もどき

使うならminiKanrenの方が便利だし好きだな
260デフォルトの名無しさん:2013/10/27(日) 09:13:09.96
>>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デフォルトの名無しさん:2013/10/27(日) 10:32:21.89
>>257
>言語のコンパイラの構文解析器をユーザのコードから直接いじる

余談ですが
アラン・ケイはそういう機能が好きで、彼が主に関わった言語は大抵それができ、
いま彼が手がけているSTEPS/FoNCでは、その種の機能をコンセプトのコアに据えてまでいます。
http://d.hatena.ne.jp/propella/20091219/p1
http://d.hatena.ne.jp/propella/20111022/p1

>コードに並んだ要素の置き換えや削除をするコードをそのコードの中の記号の羅列で自動生成する機能
>'`,@の羅列で定義されているとしたら、

それは拙いけど、あえてそういうやり方だけに限定して
マクロの可能性をスポイルしてしまうのはもったいないんじゃないかなと思ったので。
262デフォルトの名無しさん:2013/10/27(日) 10:55:21.72
>>253
だからさー、マクロは切り札なんだってばよ。
他に方法があるときにマクロを使うなっていうのはOn Lispでも言われてることだし、
それでもどうしてもマクロが必要になったときの話なのに、
「いいや、マクロは要らない」じゃ話になんないじゃん。
そりゃ使わずに済む状況ならそれに越したことはないよ。

Lispが進化的モデルでの開発に向いてるのは今更言うことでもないだろ。
「問題(要求)がはっきりしていないとき」と前提を定めているのに、
「いいや、はっきりしてる」じゃ話になんないじゃん。
そりゃはっきりしてない状況よりはっきりしてる状況ならそれに越したことはないよ。
それでもはっきりしてない状況に遭遇するから困るんじゃん。
そういうときの話をしてるんじゃん。

前提を覆すのはやめてくれよ。
263デフォルトの名無しさん:2013/10/27(日) 11:12:49.74
lispマクロは、S式(構文木)のおかげで、C++TemplateぐらいのことがS式で簡単に出来るイメージなのだか、
潜在欲求としては、見分けつくように構文分けて欲しいということなのかね?
264デフォルトの名無しさん:2013/10/27(日) 11:40:59.57
論文書きつつ実装進めてる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デフォルトの名無しさん:2013/10/27(日) 15:55:16.69
>>261
steps面白うそうだね、紹介してくれてありがとう
266デフォルトの名無しさん:2013/10/27(日) 19:14:05.46
R6RSとかR7RSの日本語のリファレンス本ってないの?
267デフォルトの名無しさん:2013/10/27(日) 19:36:55.47
>>266
ない。

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

TUTScheme
269デフォルトの名無しさん:2013/10/28(月) 03:03:01.35
amazonから
> 内容紹介
> IEEE規格案を完全に実現したSchemeインタープリタ.パソコン用としては世界最高速度.
> グラフィック関数を多数用意.教育用として,また実用システムとして十分な性能をもつ.
270デフォルトの名無しさん:2013/10/28(月) 13:19:17.83
100円くらいなら買ってもいいわ
271デフォルトの名無しさん:2013/10/28(月) 21:29:06.58
>>270
最近の若者ってほんと金持ってないんだな
272はちみつ餃子 ◆8X2XSCHEME :2013/10/28(月) 21:41:45.18
>>271

http://www.nikkei.com/article/DGXNASFS0201X_S0A900C1000000/
> 「自身の収入のみで生活」44%どまり

この数値を見ると日本は既に破綻していると思う。
273デフォルトの名無しさん:2013/10/28(月) 21:49:30.72
携帯で毎月万単位使ってるんだから、本なんか買う余裕ないよ
274デフォルトの名無しさん:2013/10/29(火) 06:24:49.02
女も入れて44%だろ。
275デフォルトの名無しさん:2013/10/29(火) 06:47:52.70
IEEEと書いてあるからIEEE754のことか、と一瞬勘違いしたわらし
276デフォルトの名無しさん:2013/10/29(火) 12:49:12.47
sublime textサイコーとか言ってはしゃいでる周りの若者も金払わずにずっと試用状態だし、みんな貧しすぎ
277デフォルトの名無しさん:2013/10/29(火) 18:14:03.28
278デフォルトの名無しさん:2013/10/29(火) 21:21:23.19
スクショってスク水ションベンの略でしょ?
279デフォルトの名無しさん:2013/10/29(火) 21:57:03.76
それだったら取っておいて欲しい
スクリーンショットの方ならいらない
280デフォルトの名無しさん:2013/10/30(水) 00:56:34.28
ションベンは実は排泄直後はそれほど汚くはない。
が、時間を置くと分単位で急激に雑菌が増える。
281デフォルトの名無しさん:2013/10/30(水) 01:48:44.96
無菌の冷凍室で保存しよう
282デフォルトの名無しさん:2013/10/30(水) 05:43:25.35
うんこは実は排泄直後はそれほど汚くはない。
が、時間を置くと分単位で急激に雑菌が増える。
283デフォルトの名無しさん:2013/10/30(水) 05:58:25.20
それは違う。
ウンコは数割が菌の死骸だろ。
膀胱はほとんど無菌だ。
284デフォルトの名無しさん:2013/10/30(水) 08:41:20.63
細菌よりも尿素→アンモニアの方が有害なんじゃねーの?
285デフォルトの名無しさん:2013/10/30(水) 15:00:03.99
>>282
食ったものが体内で処理される過程というのは、
腸内細菌による発酵が重要な役割をはたしている。
大便の半分以上が菌の死骸。
286デフォルトの名無しさん:2013/10/30(水) 15:16:35.89
>>268-269
Advanced LISP Technology (Advanced Information Processing Technology) [Kindle版]
Hiroshi G. Okuno (著, 編集), Taiichi Yuasa (編集)
Kindle版は洋書版しかなかった orz
287デフォルトの名無しさん:2013/10/30(水) 17:26:47.76
時代遅れのLispの癖に
Advancedだってよw
288デフォルトの名無しさん:2013/10/30(水) 17:37:01.31
LOLをschemeでやろうと思うんだけど、リードマクロとコンパイラマクロが使える処理系リストってない?
289はちみつ餃子 ◆8X2XSCHEME :2013/10/30(水) 18:10:59.73
コンパイラマクロは知らんがリードマクロが使える Scheme は Sagittarius くらいじゃないか。
290デフォルトの名無しさん:2013/10/30(水) 20:02:02.06
んなわきゃない
291デフォルトの名無しさん:2013/10/30(水) 21:39:22.20
https://github.com/eudoxia0/Hylas-Lisp
LLVMを使ったlisp方言
292デフォルトの名無しさん:2013/10/30(水) 22:08:25.48
>>288
リードマクロがRacket、chicken、Gambit、Sagittarius。
その中でRacketとchickenにコンパイラマクロがあるみたい。
軽く検索しただけなので、おそらく抜けがある。

>>291
静的型のLisp方言か。なかなか面白そう。
293はちみつ餃子 ◆8X2XSCHEME :2013/10/30(水) 22:09:38.99
294288:2013/10/31(木) 19:52:55.96
>>292
>>293
英語での情報が多そうなRacketから試してみる。あり。
295デフォルトの名無しさん:2013/10/31(木) 20:01:14.74
コンパイラマクロの有用性がわかんね
296デフォルトの名無しさん:2013/10/31(木) 20:13:26.99
コンパイラマクロの用途は最適化しかないんじゃないの。 CLらしい機能だよな。
SCHEMEでも内部的に似たような機構を持ってるものにまで広げればもっと有りそうな気がする。
297デフォルトの名無しさん:2013/10/31(木) 23:26:01.90
リーダマクロ=外部言語の実装、マクロ=他言語における文法、
コンパイラマクロ=コンパイル時計算の一種、アナフォリック系マクロ=文脈の操作というイメージでいる。
298デフォルトの名無しさん:2013/11/01(金) 00:39:56.07
コンパイラマクロは処理系の関数がタコな時に使うイメージ
299デフォルトの名無しさん:2013/11/02(土) 00:32:02.71
逆に、そういう手段を提供してるからデフォルトで提供される機能はナイーブな方が楽ってこともあるかもよ?
300デフォルトの名無しさん:2013/11/02(土) 12:56:38.61
R7RS LARGEにはERマクロ入るの?
301デフォルトの名無しさん:2013/11/02(土) 14:15:52.84
SCHEMEのミニマル思想的に不要だと思うお
302デフォルトの名無しさん:2013/11/02(土) 15:33:42.34
mcclim使ってる人いないの?
それを使って色々作ってみたいんだけど
日本語のドキュメント全然見つからなくて辛い
303デフォルトの名無しさん:2013/11/02(土) 19:06:35.31
>>300-301
それをいうならsyntax-rulesはパターンマッチと健全性がごっちゃになってるのがScheme的じゃない。
パターンマッチはR5RSの上でもポータブルに書けるのでプリミティブとして用意すべきなのはERやSCのどれかであるべき。
そうなってないのは議論に決着が付いてないからってだけで、syntax-rulesが最良ということを意味しない。
304デフォルトの名無しさん:2013/11/02(土) 22:57:57.92
符号の組立とパースの両方を一度に組み立てるアイデアがあるらしい。
http://d.hatena.ne.jp/propella/searchdiary?word=%2A%5B%B5%D5%C5%BE%A5%D1%A1%BC%A5%B5%A1%BC%5D
これをマクロに応用できないかな?
マクロを定義すると既存のコードの中で置き換えられる部分を探してくれるように出来たらリファクタリングがすげー楽になると思う。
305デフォルトの名無しさん:2013/11/02(土) 23:25:12.63
lispの本ってどれも高いな
需要が少ないから高くなるのは仕方ないのかな
実用common lispとか10000円近くするしボンビーには厳しい
306デフォルトの名無しさん:2013/11/03(日) 01:46:01.13
srfi-53を正式にsrfiに入れて欲しい
何か手直してしてcomp.lang.schemeに上げてみればいいのだろうか
307はちみつ餃子 ◆8X2XSCHEME :2013/11/03(日) 02:27:11.31
>>306
SRFI 提案のプロセスはここに書いてある。
http://srfi.schemers.org/srfi-process.html

higepon が簡単にまとめてるのも参考になるかな?
http://d.hatena.ne.jp/higepon/20080618/1213789117

撤回されたのは相応の理由があってのことだと思う。
まずは当時の議論をよく読んで問題点を把握することだね。
事前に c.l.s で相談するのも悪いわけじゃないだろうけど、
なるべくなら議論用の ML に記録が残るようにした方がいいんじゃないかな。
308デフォルトの名無しさん:2013/11/03(日) 12:21:35.13
>>302
ブログの記事なら幾つか。

「letter: CLIM(McCLIM) で Hello World! まで」、「McCLIM で日本語表示できた」等12件
www.google.com/search?q=intitle:mcclim+OR+intitle%3Aclim+site%3Aread-eval-print.blogspot.com&num=20

「プログラマ未満: McCLIMでライフゲーム」等5件
www.google.com/search?q=intitle:clim+OR+intitle%3Amcclim+site%3Akurohuku.blogspot.com

#:g1: McCLIMのインスペクタとデバッガ
g000001.cddddr.org/1295072383
309はちみつ餃子 ◆8X2XSCHEME :2013/11/03(日) 12:36:08.55
ユーザ数の少ないものを使うとなると情報が少ないのは仕方のないことなので、
自分が使ってみて気になったことは発信してあげよう。
310デフォルトの名無しさん:2013/11/03(日) 14:12:23.33
やっぱり英語読めないと厳しそうだな
何から手を付けていいのやら
311デフォルトの名無しさん:2013/11/03(日) 14:35:05.72
>>309
20年前まではCかFortranかlispの三択だったのに…
312デフォルトの名無しさん:2013/11/03(日) 17:50:23.31
>>310
おおよその動作モデルがわかればあとは英語でもそれほど苦にならないんだけど、
チュートリアルが英語だとちょっとキビしいと俺も思う。
313デフォルトの名無しさん:2013/11/03(日) 17:52:44.97
>>303
そういう事情ならSMALLにsyntax-rulesが有ってLARGEにERってのはおかしいな。
314デフォルトの名無しさん:2013/11/03(日) 19:22:50.25
>>311
こb・・・いや何でもないんだ。
315デフォルトの名無しさん:2013/11/03(日) 19:26:35.74
20年前ってperlもpythonもc++もjavaもあったのに使わなかったの?
316デフォルトの名無しさん:2013/11/03(日) 19:33:55.65
>>315
20年前にjavaを知ってた人は、英語の文献もスラスラ読めてどの言語でも使えてる
20年前のperlはただの正規表現処理付きのシェルにすぎない
20年前のpythonはインタプリタ言語のオモチャを作りましたと喜んでるレベル
317デフォルトの名無しさん:2013/11/03(日) 19:35:57.18
20年前のperlてawkに毛が生えたようなもんやで。
テキスト処理にはそれなりに使えたかもしれへんけど、
業務システムとかをまるっと記述できるほどの能力はあらへん。
javaも当時はアプレットを書くためのもんという認識で、
パフォーマンスも激遅やったしな。
有ったいうたかてまともに使えるもんになっとったわけでないで。
318デフォルトの名無しさん:2013/11/03(日) 19:37:56.50
小飼「perlはもうほとんどcommon lispだ」
って言ってたけど。
319デフォルトの名無しさん:2013/11/03(日) 19:44:20.77
>>318
どんな言語もそのシステムの中にlispを組み込むことになるという格言がありまして…
320デフォルトの名無しさん:2013/11/03(日) 20:00:46.32
小飼氏はMITでSICPの洗礼を受けてLisp好きなんだよね確か。
321デフォルトの名無しさん:2013/11/03(日) 20:25:47.37
20年前というとラクダ本が出版された頃だろ
OOな記述も出来るようになってたし、モジュールも結構揃ってた
322デフォルトの名無しさん:2013/11/03(日) 21:39:31.51
>>317
日本語で
323デフォルトの名無しさん:2013/11/04(月) 01:00:50.56
そういうクズの名前出すなよ
324はちみつ餃子 ◆8X2XSCHEME :2013/11/04(月) 07:44:54.17
20 年前だと Perl は CGI 用言語として定着してた感じじゃなかったか。
325はちみつ餃子 ◆8X2XSCHEME :2013/11/04(月) 08:34:14.70
>>303
ER にするならフェイズの計算をどうするか決めなければならない。
問題を分割するアプローチは妥当だと思うので言語コアに入れるのは ER (か SC) であるべきというのは同意だけど、
レベル指定の方法 (か何らかの暗黙のフェイズ決定ルール) を盛り込んでたら規格が膨れ上がってしまうことになる。

R6RS の当該項目ってこんなのだぞ。
http://practical-scheme.net/wiliki/wiliki.cgi?R6RS%3A%E7%BF%BB%E8%A8%B3%3AR6RS%3A7.2%20Import%20and%20export%20levels

ER を単体で見れば syntax-rules より簡潔で明瞭になるようでも、全体としては複雑になるわけだ。

>>313
syntax-rules は ER とパターンマッチの組み合わせて作ることが可能であることを考えれば、
ER を言語コア (Small) に入れて syntax-rules をライブラリ (Large) に入れるのが筋というのは説得力があるけども、
上述のような理由で Small を小さく保てなくなるのでこうなってるんじゃないかと思う。
326デフォルトの名無しさん:2013/11/04(月) 17:56:39.55
ISLISPじゃマクロ展開時にユーザー定義の関数は使えないことになってる。
http://d.hatena.ne.jp/Isuzu_T/20130623/1372003378
これに倣ってSMALLではユーザー定義関数を使えないことにしておいてLARGEでフェイズについて触れればいい。
327デフォルトの名無しさん:2013/11/04(月) 18:01:33.94
マクロ展開時にユーザー定義関数を使えないようにする利点ってなんだろう
328デフォルトの名無しさん:2013/11/04(月) 19:17:04.48
>>327
フェイズのことを考えなくていい。
329デフォルトの名無しさん:2013/11/05(火) 02:19:00.04
このスレのレベルの高い諸兄の以下の書籍に対する評価ってどんなもんですか?
「素数夜曲」
「Land of LISP」
「プログラミングGauche」
一気に全部買うのはお金かかるし、どれから読むのがいいのか、みたいなアドバイスも欲しいです。
330デフォルトの名無しさん:2013/11/05(火) 02:30:56.67
下の二つは持ってるけどland of lispの方が面白いし身になる
プログラミングgaucheはgaucheの機能の説明が多くて退屈だったしあまり記憶に残らない
331デフォルトの名無しさん:2013/11/05(火) 07:58:27.77
オミトロンみたいなWeb個人フィルターを
htmlpragで書く方法ないのでしょうか
Racketをパイプで既存のプロキシソフトにうめこめればいいのでしょうか
332はちみつ餃子 ◆8X2XSCHEME :2013/11/05(火) 12:41:29.00
>>329
どれも良い本だと思うけど、それぞれ扱ってる内容が違う。
素数夜曲は数学を題材にしたものだし、
Land of Lisp は Common Lisp の入門書だし、
プログラミングGauche は Gauche の本じゃないか。
まずは自分が何をやりたいのかをよく考えるといいよ。

>>330
「プログラミングGauche」も前半は Scheme 一般についての入門書として使えると思う。
ただ、 Scheme 一般と Gauche 特有の部分の境界がどこか初心者にはよくわからないかもしれないかなぁ。
333デフォルトの名無しさん:2013/11/05(火) 12:44:19.82
C言語erだった俺がScheme始める入門書として「プログラミングGauche」読んだけど、
メモリがどう管理されてるのか一言も書いてなくて読んでて困った。
334デフォルトの名無しさん:2013/11/05(火) 13:02:44.85
>>329
「Little Schemer」入ってないのかよ?
335デフォルトの名無しさん:2013/11/05(火) 21:05:34.56
そもそもschemeにメモリ管理の実装に関する仕様ってあるの?
336はちみつ餃子 ◆8X2XSCHEME :2013/11/05(火) 22:11:46.36
仕様にはないけど、使い方のコツみたいなものはある。

Haskell の話になるけど Real World Haskell ではメモリ消費量が大きい箇所をプロファイラで特定したり、
更にそれを改善する手順が説明されてたりしてたし、
仕様になくても現実問題として相手にしなきゃならないことはあるから、
そういうのをクローズアップしてまとめた文書があると助かるかもね。

ただ、やっぱり処理系ごとの差は大きいと思うので、
各処理系のコミュニティで聞いてみるのが一番いいかも。
337デフォルトの名無しさん:2013/11/06(水) 13:38:38.89
(call/cc procedure?)が#tになるのはありなの?
338デフォルトの名無しさん:2013/11/06(水) 14:40:13.14
#tで普通だと思うけど、どのへんが疑問なの?
339はちみつ餃子 ◆8X2XSCHEME :2013/11/06(水) 18:08:44.14
>>337
call/cc は「継続を手続としてパッケージ化したもの」を作ることになってる。
なので、扱いとしては手続そのものであって、もちろん procedure? は #t と判定するよ。
340デフォルトの名無しさん:2013/11/06(水) 21:13:00.58
>>337

339の説明で納得できたか?
341337:2013/11/06(水) 21:38:59.92
>>340
わかりました
継続と手続は別物だと思ってましたけど、SCHEMEでは継続を手続きとして抽象化したものにして扱うんですね
342デフォルトの名無しさん:2013/11/06(水) 23:09:57.15
手続き「継続私」
343デフォルトの名無しさん:2013/11/08(金) 05:04:03.20
SICPの後でコンパイラのドラゴン本を読んでも
あまり役に立たない?
344デフォルトの名無しさん:2013/11/08(金) 05:52:17.16
おまえには役に立たない
345デフォルトの名無しさん:2013/11/08(金) 07:59:15.13
役には立つけど、Lispでプログラムを書くにはあまり関係ない。
346デフォルトの名無しさん:2013/11/08(金) 10:34:35.38
LispのコンパイラをLispで書くなら役に立つんでない?
347デフォルトの名無しさん:2013/11/08(金) 21:06:39.38
schemeにatom?が無いのはなんで?
348デフォルトの名無しさん:2013/11/08(金) 21:11:56.64
むしろどうして必要だと思ったんだ?
349デフォルトの名無しさん:2013/11/08(金) 21:21:23.53
350デフォルトの名無しさん:2013/11/08(金) 21:30:23.67
純LISPの世界ではconsセルでなければアトムっていう単純な定義が出来るけど、
Schemeの世界にはベクタもレコードもあるわけだし、
アトムであるっていうのはどういう基準にすればいいのか自明ではないだろ。
351デフォルトの名無しさん:2013/11/08(金) 21:43:35.70
>>343
scheme -> java トランスレータ作るときに大いに参考にした
352デフォルトの名無しさん:2013/11/08(金) 21:48:59.05
ドラゴン本高すぎるよ
http://www.amazon.co.jp/dp/4781905854
http://www.amazon.co.jp/dp/478191229X
この二つ結構違うけど改訂版の方は二冊を一冊にまとめてる?
353デフォルトの名無しさん:2013/11/09(土) 07:10:18.76
> 二冊を一冊にまとめてる?

まとめてる。
354はちみつ餃子 ◆8X2XSCHEME :2013/11/09(土) 17:12:57.52
355はちみつ餃子 ◆8X2XSCHEME :2013/11/09(土) 17:44:37.81
日本語訳はまかせた
356デフォルトの名無しさん:2013/11/09(土) 19:48:55.64
Ark
357デフォルトの名無しさん:2013/11/09(土) 19:59:55.41
世の中には言い出しっぺの法則というものがあってだな…
358デフォルトの名無しさん:2013/11/09(土) 20:57:44.66
>>284
>尿素→アンモニア
そんな経路はない

哺乳類:胎盤:尿素
鳥類:卵:尿酸
魚類:アンモニア
359デフォルトの名無しさん:2013/11/09(土) 22:23:27.23
で、r7rs はホントにスモールな感じなの?
360はちみつ餃子 ◆8X2XSCHEME :2013/11/09(土) 22:37:05.27
R7RS は Small と Large のふたつに分けて考えようというものではあるけど、
Small と Large の呼び名は便宜的なものであって公式名というわけではないし、
Small が世間一般の言語と比べて小さいという意味でもないよ。

まぁ R7RS Small は R5RS よりは大きい。
361デフォルトの名無しさん:2013/11/10(日) 04:18:53.28
むしろ、R5RSからマクロとかの仕様を削除したR5RS-を策定すべき
362はちみつ餃子 ◆8X2XSCHEME :2013/11/10(日) 09:29:16.22
何がうれしいんだ?
363デフォルトの名無しさん:2013/11/10(日) 12:19:25.32
それR4RSとか言わんか?
364デフォルトの名無しさん:2013/11/10(日) 14:14:14.97
>>362
バカ大学生の自作schemeでも統一仕様は満たしていると言えるようになるので、scheme文化が花開く
365デフォルトの名無しさん:2013/11/10(日) 14:15:08.56
>>363
R4RS はまだデカい
366はちみつ餃子 ◆8X2XSCHEME :2013/11/10(日) 14:25:14.77
すべきとか言ってる間にやればいーんじゃねーのと思う。
実際、勝手に派生した ERR5RS とかだってあるわけだしさ。

ある機能を使わないってだけなら言語仕様ってほどのものじゃなくてコーディングルールで済む話だし。
使わない機能を羅列して、そのコーディングルールにそれっぽい名前をつけて提示しろよ。
367デフォルトの名無しさん:2013/11/10(日) 14:29:20.39
>>366
R7RSもコーディングルールにそれっぽい名前をつけて提示すればいいと思う
368はちみつ餃子 ◆8X2XSCHEME :2013/11/10(日) 14:31:42.81
まったくだ。
R6RS でええのや。
369はちみつ餃子 ◆8X2XSCHEME :2013/11/10(日) 16:05:08.36
>>364
現状でもちょっとしたプログラムを書くだけでも処理系の拡張を全く使わずには無理だし、
ポータビリティもクソもない状態なわけで、
更にそれより小さな R5RS のサブセットを満たすだけの何にも使えない、
ただ名目の上で「仕様を満してる」だけの処理系があっても文化に貢献するとは思えないな。

仕事には使うなら仕様に対する合致具合は気にするけど、
学生がそんなものを目指したって仕方ないだろ。
仕様なんか気にせず面白みのある新要素を考えて欲しいと思う。
370デフォルトの名無しさん:2013/11/10(日) 16:24:44.52
Lispは時代遅れ
文化に貢献するとか無理
371はちみつ餃子 ◆8X2XSCHEME :2013/11/10(日) 16:27:59.85
>>370
具体性が無い煽りには反論できないので盛り上がらないよ。
372デフォルトの名無しさん:2013/11/10(日) 16:29:07.67
文化に貢献できるレベルのプログラマは
使用する言語にLispなんて選ばない
数十年前なら話は別だが
373はちみつ餃子 ◆8X2XSCHEME :2013/11/10(日) 16:33:09.21
>>372
ひげぽんとか史朗さんとかカトーさんを dis ってんの?
374デフォルトの名無しさん:2013/11/10(日) 16:34:23.96
Lispで作られたそこそこ有用なプログラムって
他に良い選択肢がなかった時代に作られたものばかり
Webで言えばCGIでCやPerlが使われていたような時代
375デフォルトの名無しさん:2013/11/10(日) 16:34:58.19
ひげぽんは文化に貢献できるレベルじゃないしょ
376デフォルトの名無しさん:2013/11/10(日) 16:36:29.92
「レベルに関係なくプログラマは文化に貢献しない」ってところで手を打とうじゃないか
377デフォルトの名無しさん:2013/11/10(日) 16:40:41.83
文化に貢献できるレベルは百万人に一人とかそんなんだからな
378デフォルトの名無しさん:2013/11/10(日) 16:41:42.42
文化に貢献の意味がわからん…
379はちみつ餃子 ◆8X2XSCHEME :2013/11/10(日) 16:41:59.64
>>374
かつて 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-daekz6

ある領域をうまく扱えるっていうのは、その領域に最適化しているというわけなので、
物事を横断的に扱うようなところでは Lisp が役立つところもあるんじゃないかなぁとは思うけどね。
380デフォルトの名無しさん:2013/11/10(日) 16:45:08.99
>物事を横断的に扱うようなところでは Lisp が役立つところ
それはどこ?
381デフォルトの名無しさん:2013/11/10(日) 16:46:17.49
Lispって他の言語とは違う見方で見られてるよな
そろそろpythonやrubyみたいな言語と同じ扱いにしてほしい
そうじゃないとLisp使ってるだけで差別されるし色々と生きづらい
382デフォルトの名無しさん:2013/11/10(日) 16:47:48.24
Lisp使っていると優遇されるよ
昔Lisp使っていた人が今偉くなっているし
383デフォルトの名無しさん:2013/11/10(日) 16:48:53.70
言語の新概念なんかは、Lisp族で書くのが一番楽だが。
他の言語が自慢する概念さえ楽々実装して弄り放題。
384デフォルトの名無しさん:2013/11/10(日) 16:49:42.83
それ本当?
今中卒ニートでそろそろ就職しないとまずいんだけど
Lispで適当なプログラム書いてるし処理系も作ったことあるんだけど大丈夫なのかな
385はちみつ餃子 ◆8X2XSCHEME :2013/11/10(日) 16:51:16.88
>>375-378
そうか?
例えば日本文化とか言ったときには日本人全体が少しづつ積み重ねたものが結果的に日本文化になっているのであって、
少数の職人で厳密に計算して作ってるわけじゃないだろ。
Scheme の仕様や実装に直接かかわるような人は全体の割合から言えば少ないかもしれないけど、
それだって使う人がいなきゃ意味がないんだぜ。
386はちみつ餃子 ◆8X2XSCHEME :2013/11/10(日) 16:52:10.29
>>381
すごくわかる。
Lisp って普通の言語だよな!
387デフォルトの名無しさん:2013/11/10(日) 16:54:31.95
>>373
カトーって誰
388デフォルトの名無しさん:2013/11/10(日) 16:56:28.81
素子〜〜〜ッォ!!
389デフォルトの名無しさん:2013/11/10(日) 16:57:20.34
>>384
釣りっぽいが、マジならgithubで公開して、履歴書につけとけ。
390デフォルトの名無しさん:2013/11/10(日) 16:58:28.75
積み重ねなのはそうだけど
積み重ならず消えていくものが殆どで
今残っている文化は優れたものの積み重ねなんだと思うよ
391デフォルトの名無しさん:2013/11/10(日) 16:59:00.24
>>387-388
それはバトーさんだ。
392デフォルトの名無しさん:2013/11/10(日) 17:02:07.45
>>391
ワロス
393デフォルトの名無しさん:2013/11/10(日) 17:03:01.38
後世に残る優れた文化の土台を作れる人は百万人に一人くらいで
その土台の上に積み重ねができる人が千人に一人くらい
394デフォルトの名無しさん:2013/11/10(日) 17:05:44.09
昔はろくな言語が無かったから
優れた人がLispを選ぶ可能性が高かったけど
今では他の言語を選ぶ可能性が高い
395デフォルトの名無しさん:2013/11/10(日) 17:08:39.64
定期的に変なアンチが湧くな。
キモさから言って、和田先生に粘着してたのと同一人物だろうけど。
396はちみつ餃子 ◆8X2XSCHEME :2013/11/10(日) 17:10:11.08
>>393
消えていくものがなければ残るものだってない。
後世に残るものを作った人だけしか当時いなかったとして、
その人達は成果を残せたと思うか?
比較優位って奴だ。
397デフォルトの名無しさん:2013/11/10(日) 17:10:33.17
和田先生とか呼ぶ方が
普通の人から見たらキモイよ
398デフォルトの名無しさん:2013/11/10(日) 17:15:52.96
元大学教授を先生と呼ぶのがキモイだと。
やはり同一人物か。頭の悪さでバレバレ。
399デフォルトの名無しさん:2013/11/10(日) 17:16:44.40
間違って「和田栄一」でググったら創価学会の人だった。
400デフォルトの名無しさん:2013/11/10(日) 17:18:23.24
和田先生とかが不甲斐なかったから
日本は外国に負けているわけで
尊敬するような対象じゃないだろ
401デフォルトの名無しさん:2013/11/10(日) 17:19:25.09
大学教授なんて先生って呼ぶほどのもんじゃないだろ
402デフォルトの名無しさん:2013/11/10(日) 17:19:53.83
>>398
和田氏の今の肩書 (研究顧問) でも先生と付けて違和感はないな。
403はちみつ餃子 ◆8X2XSCHEME :2013/11/10(日) 17:20:55.42
なんか話題がそれてるぞ。
404デフォルトの名無しさん:2013/11/10(日) 17:22:29.94
和田先生とか普通の人に聞いたら100人中100人知らないし
知る価値もない
そのレベルの人を神とあがめる連中はキモイ
405はちみつ餃子 ◆8X2XSCHEME :2013/11/10(日) 17:22:50.97
>>400
どうだろう。
研究内容の問題というより政策としての問題だと思う。
和田さんに責任があるとは言えないんじゃないかな。
406デフォルトの名無しさん:2013/11/10(日) 17:23:53.71
和田さんに研究顧問とかさせない方がいいよ
ますます世界から取り残されるわ
407デフォルトの名無しさん:2013/11/10(日) 17:25:43.56
責任はないけど
あがめるほどの結果も出してない
和田先生とか呼ぶ人たちのあがめようはキモイ
408デフォルトの名無しさん:2013/11/10(日) 17:26:08.31
>>406
名誉職じゃないの?
409デフォルトの名無しさん:2013/11/10(日) 17:29:19.79
新興宗教にはまっている人が
教祖をあがめるような
なんともいえないきもさがある
410デフォルトの名無しさん:2013/11/10(日) 17:31:15.95
そうなんだ すごいね
411デフォルトの名無しさん:2013/11/10(日) 17:31:34.32
>>409
そんなのはごく一部だけだろ。
というかたぶん一人とか二人だと思う。
412デフォルトの名無しさん:2013/11/10(日) 17:37:40.01
いまだにLispが優れているとか思っている人は
昔の他に選択肢がなくて優れた人がいたころのイメージをひきずっている
他が進歩してLispから優れた人がいなくなったのに
頭の中がそのままだから時代遅れになっている
世間一般の評価との乖離が著しい
413はちみつ餃子 ◆8X2XSCHEME :2013/11/10(日) 17:41:28.35
他の言語の使い手も (少なくとも特定の領域においては) それぞれ自分が使っている言語が最強だと思ってんじゃないの?
それと同程度には Lisp が最強だと思ってもいいと思うけどな。

優劣はともかくとして少なくとも私は Scheme を好きだよ。
414デフォルトの名無しさん:2013/11/10(日) 17:45:02.31
典型的なLisperのLispに対する評価は神の言語だよ
使用者がそういう風に思っている言語は他にないんじゃないかな
根拠がまだ優れた人がいたころの大昔の実績しかないんだけどね
415デフォルトの名無しさん:2013/11/10(日) 17:47:28.67
すぐれた神の言語Lispを使っている俺は選ばれた人間で
Lispを使っていない人間は愚人
416デフォルトの名無しさん:2013/11/10(日) 17:47:51.09
>>414
神の言語ってのは定番ネタだろ…
417デフォルトの名無しさん:2013/11/10(日) 17:48:14.11
>>412
なるほどー参考になりますー
あなたの思うより優れた言語がぜひ知りたいので、
Lispと比較してどう優れてるのか根拠つきで教えていただければ幸いですー
よろしくお願いします
418デフォルトの名無しさん:2013/11/10(日) 17:48:19.33
あれネタだよな
本気にしてる奴いたんだ
419デフォルトの名無しさん:2013/11/10(日) 17:49:07.87
重症のキチガイLisperはネタじゃなくて
真実だと思っているよ
420デフォルトの名無しさん:2013/11/10(日) 17:51:58.18
Lispについて好意的な意見を述べる人は多いけど
実際に使っている人は驚くほど少ない
421デフォルトの名無しさん:2013/11/10(日) 17:52:14.89
Lisp が神の言語ってのを信じるような奴はグレアムが Lisp で書かれているっていうのも信じてそうだなw
422デフォルトの名無しさん:2013/11/10(日) 17:56:59.21
何をおっしゃるのですか。
ポール・グレアム氏がLISPで書かれているのは誰もが認める真実ですよ。 [1]

出典
1. “Lispの真実” http://www.aoky.net/articles/leon_bambrick/lisp_truth.htm
423デフォルトの名無しさん:2013/11/10(日) 17:58:42.80
ネタはネタであると見抜ける人でないと(LISPを使うのは)難しい
424デフォルトの名無しさん:2013/11/10(日) 18:01:38.77
Lispを神の言語と言われて
ネタだと思っちゃう人は他の言語を使ったほうが
幸せになれると思う
425デフォルトの名無しさん:2013/11/10(日) 18:02:37.59
キチガイktkr
426デフォルトの名無しさん:2013/11/10(日) 18:04:21.15
>>388
いや、そういうネタはいいからカトーって誰よ
427デフォルトの名無しさん:2013/11/10(日) 18:05:44.29
世界の全てがLispで記述できる!
数式処理システムのREDUCEはLispで書かれ
今でも現役でiPhoneアプリにさえ入っている。
428デフォルトの名無しさん:2013/11/10(日) 18:07:11.79
原理的にはチューリング完全なら世界の全てを記述することは可能なんじゃないの?
Lispでなくても。
429デフォルトの名無しさん:2013/11/10(日) 18:07:36.81
えっお前らまだ自分自身をLispで記述してないの?
430デフォルトの名無しさん:2013/11/10(日) 18:10:28.42
まさか〜 Lisperたるもの自分をLispで定義するのは当然じゃないっスか〜
431デフォルトの名無しさん:2013/11/10(日) 18:13:55.00
仕様を満たしてるかチェックするツールをR*RSごとに用意して、そのチェッカを通ったらR*RSを名乗ってよい
という時代が来ると思ってたのに…
432デフォルトの名無しさん:2013/11/10(日) 18:21:36.78
文化に貢献というのがなんかのスイッチだったらしい
433デフォルトの名無しさん:2013/11/10(日) 18:21:53.46
唐突に和田先生とか言い出す輩は
和田さんがニュートンやアインシュタインと同等かそれ以上であるかような話ぶりだからな
そりゃキモイわ
434デフォルトの名無しさん:2013/11/10(日) 18:25:43.92
またその話題か。
もうええっちゅうねん。 ←突っ込みは何故か大阪弁風になる
435デフォルトの名無しさん:2013/11/10(日) 18:45:16.81
言語言語で得意不得意があるからlisp最強だとは思わないけど、
rubyやpythonにユーザー数で負けているのは釈然としない
436デフォルトの名無しさん:2013/11/10(日) 19:00:56.14
元Lispユーザーのpython、rubyユーザーに
移った理由を聞いてみるといいんじゃね
437デフォルトの名無しさん:2013/11/10(日) 19:18:41.96
あのへんはシステム管理ツールを抑えたのが貢献してる。
システムにほぼ標準で入った事で、シス管連中がPerlから移行した。
438デフォルトの名無しさん:2013/11/10(日) 19:27:08.18
pythonとか欲しいライブラリが何でもあって
すぐ使えるし
439デフォルトの名無しさん:2013/11/10(日) 19:29:26.21
ライブラリもあるけど括弧がノイズになって気楽に出来無くなってるのが問題じゃないかな
440デフォルトの名無しさん:2013/11/10(日) 19:37:25.51
>>433
ノーベル賞に情報科学賞があれば和田さんもアインシュタインの横にならんでいたんだよ
441デフォルトの名無しさん:2013/11/10(日) 19:42:57.01
和田賞を作るべき
442デフォルトの名無しさん:2013/11/10(日) 21:28:40.66
LL、ML系言語が出来てからの徐々に出番が減った。
情報科でもlispでプログラミング言語の知識を教える機会も減った。
コンピュータの知識を修得する過程でemacs触る機会が減った。
アプリケーション組み込み系のlisp採用率も減った。
マークアップ言語もSGML+DSSSLからXML+XSLやHTML+CSS+JSに変わってしまったわけで。
443デフォルトの名無しさん:2013/11/10(日) 21:32:01.64
lispはLL・ML言語じゃなかったのか…
444デフォルトの名無しさん:2013/11/10(日) 21:37:25.71
と思ったけど、clojureは、javaやLLからミュータブルと状態を持ったオブジェクト指向を置き換えながら、より使いやすいツール、インフラに置き換えていってるというアナウンスが効いて、海の向こうでは思ったよりコミュニティが発達していってる。
445デフォルトの名無しさん:2013/11/10(日) 21:47:45.98
LLはCライクなLLという意味で、MLは思い違いをしてた。
Hindley/Milner 型の形システムを持った言語族というつもりだった。
446デフォルトの名無しさん:2013/11/10(日) 22:36:09.95
>>442
DSSSLが使われてた時代なんて有ったか?
447デフォルトの名無しさん:2013/11/11(月) 08:47:25.77
DSSSLのまともな処理系ってJADEくらいだろ。
実質的に一択な状況じゃ標準化の意味ないよな。

そんでもってテンプレートエンジンでJadeって名前のが出てきてキレそうになった。
http://jade-lang.com/
全く違う分野ならともかくなんとも微妙なところでかぶせてきてるのがいやらしい。
448デフォルトの名無しさん:2013/11/11(月) 16:30:43.83
>>446
新参者めw
古くからLinuxを触ってきた人であれば、
Linux JF文書のお世話になったことは、一度ならずともあるだろう

 http://linuxjf.sourceforge.jp

このJF文書の多くはLinuxdocと呼ばれるSGML形式で書かれている
そして、JF文書の処理には(>>447の紹介した)ツール jade が使われ、
そのスタイルシートはDSSSLで記述されている

また、国際標準の文書仕様であるDocBookもV4系まではDSSSLが使われていた
(最近までDSSSLとXSLTが併用されていたが、最新のV5ではXSLTのみに切り替わった)
DocBookは、GNOMEプロジェクトやPostgreSQLプロジェクトで採用されている
特にPostgreSQLでは、今でもSGML/DSSSL版の(古い)DocBookが現役だ
449デフォルトの名無しさん:2013/11/11(月) 20:37:50.06
>>448
しかし、さすがに学校では教えていなかったような気が…
450デフォルトの名無しさん:2013/11/11(月) 21:49:18.99
ISLISP処理系作りたいけど日本語の情報少ないな
これどれくらいの規模なんだろ
451デフォルトの名無しさん:2013/11/11(月) 23:49:52.61
ニュー速VIP爆撃中の2ch定期書き込みツールqsocks
lispで書かれたこのツールを誰か改造してください。
他板でも使えるようにしてください。
お願いします。m(ーー)m

qsocks
https://anonfiles.com/file/3fcd3edbf6000ecf37b61e8af186c453

qsocksソースコード
http://codepad.org/uyuG7Ovg
452デフォルトの名無しさん:2013/11/12(火) 00:27:45.96
racketよく知らないんだけどURIエンコードとか文字コードの変換とか自分でしないといけないのか
453デフォルトの名無しさん:2013/11/12(火) 05:31:43.74
荒らしに加担するのはいやずら
454はちみつ餃子 ◆8X2XSCHEME :2013/11/12(火) 07:55:29.11
>>452
Racket には iconv ライブラリが入ってたはず。
455デフォルトの名無しさん:2013/11/12(火) 08:54:37.05
>>450
普及度に比して考えるとISLISPの日本語情報はむしろ多い印象がある。
規格もJISになってるから日本語で読めるし。

JIS X 3012
kikakurui.com/x3/X3012-1998-01.html
ISLISP関連の日本語論文
www.islisp.org/jp/paper-list-jp.html
TISL(ソースが公開されている処理系の一つ)
www.ito.ecei.tohoku.ac.jp/TISL/
ISLISP リファレンス
www.ito.ecei.tohoku.ac.jp/TISL/doc/ISLISP/index_j.html

最後のはリンク切れまくりだけど、URLを、パス先頭のディレクトリが ~izumi/ ではなく TISL/ となるよう書き換えれば取得できた。(あるいはbase要素を削除)。
456デフォルトの名無しさん:2013/11/12(火) 10:51:09.28
>>455
JISは100ページくらいのペラい冊子なのに5000円もするんだよな
457デフォルトの名無しさん:2013/11/12(火) 14:07:41.30
協賛金みたいなのがのっけられてるんだろう
458デフォルトの名無しさん:2013/11/12(火) 14:20:00.49
>>455
ありがとう
最後のページのリンク切れは初めてみたときガックリしたけどそんな場所にあったのか
459デフォルトの名無しさん:2013/11/12(火) 15:04:28.55
islispだとレキシカル変数のバインドにはlet、
ダイナミック変数のバインドにはdynamic-letを使うみたいだけどなんで分けたんだろうか?
460デフォルトの名無しさん:2013/11/12(火) 15:18:11.73
スレ違いの可能性が高いけど、
色々な言語のモジュールシステムを比較したサイトってどっかに無い?
461デフォルトの名無しさん:2013/11/12(火) 15:20:36.99
最近はあんまり言語比較は流行ってない気がする
462デフォルトの名無しさん:2013/11/12(火) 15:59:20.22
お前らありがとうな。

嫌儲のカスがVIP、なんJ、+、ダム板にまで攻撃を画策、もはや無差別テロだなw
http://engawa.2ch.net/test/read.cgi/poverty/1384215591/
463はちみつ餃子 ◆8X2XSCHEME :2013/11/12(火) 17:28:01.92
>>459
役割が違うんだから、むしろ一緒にする理由の方が希薄な気がする。
464デフォルトの名無しさん:2013/11/12(火) 18:13:04.11
letを使うマクロとかがあったらletとlet-dynamicで分かれてたら不便じゃね
465デフォルトの名無しさん:2013/11/12(火) 18:20:23.32
もともとCL以前は文法分かれてたんじゃなかったっけ?
466デフォルトの名無しさん:2013/11/13(水) 00:17:57.87
d-letでいいのになぜなの
ギャバンダイナミックみたいじゃない
467デフォルトの名無しさん:2013/11/13(水) 01:12:21.19
ISLispの参考書って出版されてる?
468デフォルトの名無しさん:2013/11/15(金) 02:56:17.28
def define defun defn
統一してくれ…
469はちみつ餃子 ◆8X2XSCHEME :2013/11/15(金) 03:04:38.95
名前を統一ってこと?
微妙に意味というか名前の扱いのモデルが違うからそう簡単な話じゃないよね。
470デフォルトの名無しさん:2013/11/15(金) 22:04:18.57
declareってあの位置にあるのが違和感あるんだけど
なんで引数の位置にしないの
あとエクレアみたいなんだけど
471デフォルトの名無しさん:2013/11/15(金) 23:26:28.75
Lispは実用じゃないらしい
472はちみつ餃子 ◆8X2XSCHEME :2013/11/16(土) 00:23:44.94
ゴルァー 江添ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

奴はエウ゛ァンジェリストを気取ってる向きもあるからときどきそういうことを言うんだよ…

言語が実用的かどうかは置くとして、
事実として C++ に比べれば実用されてないからなぁ。
C++er の言い分としちゃそうなるのはわかなくもない。
でもそれでいいんだよ。
使い手が少ない方がいいこともあるって話はグレアムも言ってるじゃん。
473デフォルトの名無しさん:2013/11/16(土) 00:26:58.14
否定はしないけどアプリとか書いてない人に言われるとモヤっとするものが
474デフォルトの名無しさん:2013/11/16(土) 00:27:10.43
C++とは未来へと疾走し、LISPは過去へと疾走する。
475デフォルトの名無しさん:2013/11/16(土) 00:40:22.48
使い手の多いPythonはライブラリが充実しまくり
476はちみつ餃子 ◆8X2XSCHEME :2013/11/16(土) 00:51:44.91
>>473
彼もアプリを全く書いてないわけではないよ。
とは言え 2006 年頃の話だから C++03 で書いてたのかな。
というか当時はそんなに C++ 規格に傾倒している風ではなかったので、
あまり強く規格を意識してなかったかもしれないな。

彼が blogger にブログを移転する前の話なんで、
当時のブログ記事も残ってなくてどういう形で C++ に接していたのかは、
今となっては今一とくわからない。
477デフォルトの名無しさん:2013/11/16(土) 01:09:21.89
納品されるソースファイルの言語そのものが C++ だから C++ は実用的だ
という意味なら、確かにC++は実用的

コードを生成する言語を実用的な言語と言うなら、schemeでC++のコードを生成している俺にとっては schemeが一番実用的

現実の世界で動いているプログラムのソースファイルの量が多い言語を実用的と言うなら、一番実用的なのはアセンブラ
478はちみつ餃子 ◆8X2XSCHEME :2013/11/16(土) 01:15:07.04
>>477
基本的にはプログラマが直接書くもののことを言うのが筋なんじゃないの。
479デフォルトの名無しさん:2013/11/16(土) 01:16:58.92
かつて実用的な言語だったLisp
480はちみつ餃子 ◆8X2XSCHEME :2013/11/16(土) 01:19:17.05
かつて実用的だったものがそうじゃなくなるなんて不自然だろう。
実用的なものが増えたって話じゃないの。
481デフォルトの名無しさん:2013/11/16(土) 01:21:00.85
例えば、一人で50人以上の規模のソフト会社に生産量で対抗しようと思ったら lispしか選択肢がないのは確か
482デフォルトの名無しさん:2013/11/16(土) 01:27:45.55
一人で頑張れー
483デフォルトの名無しさん:2013/11/16(土) 01:29:30.90
>>480
今は、ライブラリは言語の一部だから、社会の活動でブランクがあるとライブラリの鮮度(流行りのインターフェイスやハード対応)が落ちて実用的でなくなる

使用者がなくなって語彙が現代に追いつかなくなったラテン語が実用的でないのと一緒
484はちみつ餃子 ◆8X2XSCHEME :2013/11/16(土) 01:47:13.72
ライブラリの差はあるよな。

言語は道具でしかなくて、
何かやりたいことを実現するための手段でしかないから、
なるべくなら書かずに済めばそれがいちばん良い。

Lisp はライブラリを抽象化する道具も提供してはいるんだけど、
派生言語の多さとかもあって今の Ruby や Perl ほど膨大なライブラリが集まってないのは確かだと思う。

そういう意味じゃ Clojure は将来性あるんじゃね。
つってもベースになる Java もちょっと落ち目かな?
485デフォルトの名無しさん:2013/11/16(土) 03:26:52.03
>>484
clojureはJVMの仕様で末尾再帰最適化がなくて、再帰で頭使う必要があって、set!が使えないので、javaとセットじゃないとつらい
486デフォルトの名無しさん:2013/11/16(土) 04:42:32.24
>>485
> clojureはJVMの仕様で末尾再帰最適化がなくて、

知らなかった。
これって、scala とかもそうなの?


scala も clojure も、よく知らないんだけど。
487デフォルトの名無しさん:2013/11/16(土) 05:01:39.91
clojureはloop/recurマクロで末尾再帰をする
scalaは相互再帰とかじゃなければ最適化してくれたと思う
488デフォルトの名無しさん:2013/11/16(土) 05:58:30.75
Scala は末尾再帰最適化があるよ。
489デフォルトの名無しさん:2013/11/16(土) 06:06:47.55
でもググると Clojure は JVM の仕様により末尾再帰最適化ができないっていう記述がけっこうあるね
490デフォルトの名無しさん:2013/11/16(土) 06:48:04.46
気になったので調べてみた。
「Scala 逆引きレシピ」っていう本に「現在の Scala の末尾再帰による最適化は、Java VM の制約により制限されたものになっています。
末尾再帰による最適化を期待する場合は、@tailrec アノテーションを付与すると良いでしょう。
最適化できない場合は、コンパイルエラーになります」って書いてあった。
491デフォルトの名無しさん:2013/11/16(土) 10:51:31.60
江添自体非実用非生産的
492デフォルトの名無しさん:2013/11/16(土) 14:16:27.36
お前は実用的なのかよ
493デフォルトの名無しさん:2013/11/16(土) 15:41:37.81
再帰するときに頭使って言語依存のトリック多用するのは好きじゃないのは俺だけか…
494デフォルトの名無しさん:2013/11/16(土) 15:59:14.82
人型汎用決戦兵器
495デフォルトの名無しさん:2013/11/18(月) 08:58:43.16
496はちみつ餃子 ◆8X2XSCHEME :2013/11/18(月) 10:58:01.21
>>495
ツンデレ
497デフォルトの名無しさん:2013/11/18(月) 22:42:16.16
まあ、真のLisperに括弧は見えないから問題ないな。
498デフォルトの名無しさん:2013/11/18(月) 22:57:26.94
それは俗世で生きていくには色々と辛そうだな
499デフォルトの名無しさん:2013/11/18(月) 23:52:38.85
日常生活においても括弧そのものの存在を忘れてしまっていたりしたら怖い
なんだっけ? 弓の名人があまりにすごくなりすぎて弓のこと忘れちゃう小説
あったよね
500デフォルトの名無しさん:2013/11/19(火) 00:40:38.70
501デフォルトの名無しさん:2013/11/19(火) 00:52:34.17
カッコは自動で閉じてくれるから、カッコの多さそのものは問題ない
問題なのは、lisp方言ごとにカッコのルールが違うこと
コードのトランスレートがめんどい
502デフォルトの名無しさん:2013/11/19(火) 02:00:10.40
>>500
面白かった、リンクサンクス。中島敦凄いな。
503はちみつ餃子 ◆8X2XSCHEME :2013/11/19(火) 13:08:36.61
>>501
Scheme は比較的積極的に括弧を使う感じだけど arc や clojure は括弧少なめな感じかな。
504デフォルトの名無しさん:2013/11/19(火) 19:30:16.44
ロックンロール・ウィドウ♪
505デフォルトの名無しさん:2013/11/19(火) 22:59:49.27
>>500
うん 面白かった
話にひきこまれて、括弧の読み仮名のウザさを忘れてた
506デフォルトの名無しさん:2013/11/19(火) 23:44:31.04
>>500
これおじいちゃん単にボケが始まっただけでしょう。
507デフォルトの名無しさん:2013/11/22(金) 21:58:41.10
>>506
いやいや、そう読んだら元も子もないだろ
508デフォルトの名無しさん:2013/11/23(土) 03:37:07.34
君達はまだ本当のボケを知らない
509デフォルトの名無しさん:2013/11/24(日) 02:24:28.85
mecab
cabocha
をGaucheのffiから使うとかいうのあったけど
入出力がテキストなんだから
systemコマンドからシェルとして実行すれば十分だったんじゃないの?
ffiでないと取れない情報って何かあった?
510デフォルトの名無しさん:2013/11/24(日) 15:13:10.86
和田先生といえば
スケバン刑事
511デフォルトの名無しさん:2013/11/24(日) 15:23:10.00
和田の話は出すな。また荒らされるぞ。
512デフォルトの名無しさん:2013/11/24(日) 15:28:23.38
最近、純粋関数型言語系の人がDSLには純粋関数型言語が向いてると言ってるのをよく見るけど。
構文抽象+言語の全要素使用可能のLispに勝てるつもりなのだろうか。
存在自体を忘れられる気もするけど。
513デフォルトの名無しさん:2013/11/24(日) 16:37:38.81
lispを関数型と呼んだり、マクロを構文抽象とか呼ぶのは違和感がある
俺には、lispは、実行時型推論でデータ抽象をするカッコの多いC言語に見える
514デフォルトの名無しさん:2013/11/24(日) 16:39:37.55
カッコいい言語、それが LISP だ。
515デフォルトの名無しさん:2013/11/24(日) 17:13:10.96
Lispで肝心なのは、自前のデータ形式(リスト)で、プログラム自体が出来てる事でしょ。
プログラミングとメタプログラミング、データとプログラムが同一。それがLisp。
516デフォルトの名無しさん:2013/11/24(日) 18:15:55.52
>>510
ワラタ。ご冥福を。
517デフォルトの名無しさん:2013/11/24(日) 21:34:18.25
>>512
まえに聞いた時は、
S式だと後置のパイプラインやらメソッドチェーン的なものが表現しにくい点
型チェックもマイナーだし閉じたものではないが実装あるんだが、静的動的型チェックで良く上がる実行時型チェックだと型エラーがという点
ぐらい聞いた。
可変とい点もいわれることあるけど、これも実装に寄るが。
518デフォルトの名無しさん:2013/11/25(月) 15:46:48.04
Lisp って幅広いだろ。 色んなのがあるだろ。
「Lisp は」って言い始めたらふんわりした曖昧模糊な話しか出来なくない?
観念的なことは所詮は主観だしさ。
もうちょっと具体的に書いて欲しいな。
519デフォルトの名無しさん:2013/11/25(月) 16:33:32.24
うむ。Lispとは「道(TAO)」である。
520デフォルトの名無しさん:2013/11/25(月) 16:57:29.91
S式同士だとガワが違うだけで、相互の変換も容易だから、LispはLispじゃないかな。
ライブラリレベルであらゆる言語の要素を組み込めるしな。
Lispは自分の望む言語を作るためのメタ言語。当初の言語仕様とか飾りですよ。
521デフォルトの名無しさん:2013/11/25(月) 18:49:15.69
http://itpro.nikkeibp.co.jp/article/NEWS/20131125/520423/
灘中高のパソコン部にlisperふたりらしい
(アクティブ会員四十数人中)
522デフォルトの名無しさん:2013/11/25(月) 20:26:52.19
灘高パソコン部はなかなか凄いぞ
http://www.npca.jp/2013/
523デフォルトの名無しさん:2013/11/25(月) 20:31:55.13
そういうの見たら発作起こすからやめてほしい
524デフォルトの名無しさん:2013/11/25(月) 20:48:23.26
圏論の資料はすごかったが自然変換という語彙を定義する前に使ってたり別の意味でも面白い
525デフォルトの名無しさん:2013/11/25(月) 21:22:26.33
突っ走ってもらいたい
526デフォルトの名無しさん:2013/11/25(月) 22:34:40.11
Lispを学ぶために京大に行くのか、Lispを広めるために東大に行くのか興味ある。
527デフォルトの名無しさん:2013/11/26(火) 00:00:53.44
LispをやりにMITに… そういう時代じゃないのかな。
528デフォルトの名無しさん:2013/11/26(火) 00:06:30.60
DDI (どうでもいい)
529デフォルトの名無しさん:2013/11/26(火) 00:24:51.98
KDDI(かなりどうでもいい)
530デフォルトの名無しさん:2013/11/26(火) 18:15:58.03
どうして数学とか物理の人は日常ではあまり使わない「高々xxである」みたいな表現を使うんだ?
オッカムの剃刀の理屈で言えば真っ先に削除する要らない言葉じゃないか。
それとも何かルールがあって付けてるのか?
531デフォルトの名無しさん:2013/11/26(火) 18:38:05.13
お前にとって要るか要らないかなんてどうでもいい。
532デフォルトの名無しさん:2013/11/26(火) 18:43:14.96
格好付けたいお年頃
533デフォルトの名無しさん:2013/11/26(火) 18:49:45.70
もともとはなんかの邦訳の真似だろうなと思ってる
534デフォルトの名無しさん:2013/11/26(火) 19:07:09.38
> オッカムの剃刀の理屈で言えば

意味を自分で調べて雑談スレにでも報告してくれや
535デフォルトの名無しさん:2013/11/26(火) 19:12:16.82
>>530が思っているらしい意味で言うと
「オッカムの剃刀の理屈」ってのも削除しないとなw
536デフォルトの名無しさん:2013/11/26(火) 20:02:55.88
数学用語としてはちゃんと意味があるよ。

> http://ja.wikipedia.org/wiki/%E9%AB%98%E3%80%85_(%E6%95%B0%E5%AD%A6)

> 英語の at most に対応した厳密な意味を持つ用語である。

> 「多くとも」、「以下」と同義で

> 日常語での「高々」は、「あまり多くはない」というニュアンスを持つ
537デフォルトの名無しさん:2013/11/26(火) 20:41:49.16
>>530
その意見に賛成!
日本は今すぐ日本語を廃止し、歴史的経緯を無視して単語当たりの情報量が高い中国語を採用すべきだと思う
538デフォルトの名無しさん:2013/11/26(火) 20:44:54.47
スレ違いだからいい加減にしろ
539デフォルトの名無しさん:2013/11/27(水) 04:45:07.99
宇宙はLispで作られているのを考慮に入れると
全くスレ違いではない
540デフォルトの名無しさん:2013/11/27(水) 05:00:35.52
神様はPerlだって言ってなかったっけ。
541デフォルトの名無しさん:2013/11/27(水) 11:19:08.62
日本の公用語をLispにしてやる!
542デフォルトの名無しさん:2013/11/27(水) 11:54:07.14
実用的なLISPって作られないの?
543デフォルトの名無しさん:2013/11/27(水) 13:00:16.24
実用的かどうかはどっちかっていうとライブラリが充実してるかによるんじゃね?
544デフォルトの名無しさん:2013/11/27(水) 13:33:32.26
普通に実用してる。
趣味プログラマだからそれほど過酷に使ってるわけじゃないけど。
545デフォルトの名無しさん:2013/11/27(水) 13:35:30.10
SRFI の中でこれは仕様に取り込んでもいいんじゃないかと思うのって有る?
細かいところは多少の修正をする前提で、コンセプトが有りだと思えるようなの。
546デフォルトの名無しさん:2013/11/27(水) 21:54:26.43
>>542
lisp系使ってるのは大学の研究室だけかと思ってたけど、たまにlispで業務インフラとかサーバー運用してる企業があるから気を付けろ
547デフォルトの名無しさん:2013/11/27(水) 22:28:28.97
業務系だと Clojure は割と相性が良いと思う。
548はちみつ餃子 ◆8X2XSCHEME :2013/11/27(水) 23:05:58.43
>>545
stream は欲しいかも。
stream が基礎にあれば数列を扱うのがすごい楽になる。
この上に構築できるものは多いと思う。

それと正規表現。
主要なスクリプト言語で正規表現をサポートしてないものなんてそうそうないし、
いまどきのプログラミング言語にそれくらい有って当然みたいなイメージがある。
srfi-115 が登場するまで提案されなかったっていうのがちょっと意外な感じがする。
だけど文字セットや文字列ポートについての仕様とも関係してくるので、
そちらがきちんと確定しないと難しいかもしれない。

あとは現在の Scheme の上でユーザが組み立てることが出来ないスレッドやソケットまわり。
549デフォルトの名無しさん:2013/11/27(水) 23:16:04.67
今の時代は最小webサーバーコンテナも標準ライブラリに入れるべきだと思う
550デフォルトの名無しさん:2013/11/27(水) 23:20:25.12
posix
551デフォルトの名無しさん:2013/11/27(水) 23:20:51.50
ソケットはともかくスレッドは鬼門だよなぁ。
OSやCPUの影響を受けるし
継続や dynamic-wind の意味論がどうなるのかとか
マクロ展開中のスレッドはどう振舞うのかとか
色んな方向に話が発展するし。
552デフォルトの名無しさん:2013/11/27(水) 23:35:25.34
巨大言語のC++にない機能は増やさなくて良いだろうな。
553デフォルトの名無しさん:2013/11/27(水) 23:46:34.00
もうSCHEMEはリスト操作が出来るだけのおもちゃでいいよ
実用はCLでやろうぜ。
554デフォルトの名無しさん:2013/11/27(水) 23:51:02.45
>>542
なにを持って実用なのかは置いておいて。
ログ解析みたいな処理はGaucheとかでも十分な気がするし、自分でも実用してる。
ただ、他の言語に比べてJSONが扱いずらいとは感じる。
555デフォルトの名無しさん:2013/11/28(木) 00:03:10.49
JSON を使うために何が不足してると思う?
556デフォルトの名無しさん:2013/11/28(木) 13:57:41.11
http://cybozushiki.cybozu.co.jp/?p=13282
イエローカードってはじめてのlispかどこかに出てきたネタかな
557デフォルトの名無しさん:2013/11/28(木) 20:32:50.38
あれ書いたころはそんなにサッカーやってなかったんじゃない?
あるとすれば改訂版の加筆部分。
558デフォルトの名無しさん:2013/11/30(土) 17:38:20.59
C++っていまどきの言語に比べると
もう小さいだろ
559デフォルトの名無しさん:2013/11/30(土) 17:45:45.94
言語そのものは巨大すぎ。ライブラリは足りないけど。
560デフォルトの名無しさん:2013/11/30(土) 17:51:03.48
大きくないだろ
仕様書で400Pくらいしかないぞ
561デフォルトの名無しさん:2013/11/30(土) 18:06:16.37
>>560
Schemeの8倍か…
562デフォルトの名無しさん:2013/11/30(土) 19:23:29.53
563デフォルトの名無しさん:2013/11/30(土) 19:25:35.20
>>562
それ大半がライブラリだから
564デフォルトの名無しさん:2013/12/01(日) 01:26:43.64
もう仕事じゃ使わないよねC++
JavaとかC#とかいろいろ応用が利いたというか、勉強しておいてよかったけど
565デフォルトの名無しさん:2013/12/01(日) 14:39:01.26
誰かscmxlateの使い方を日本語で解説してくんないのかな
566デフォルトの名無しさん:2013/12/01(日) 18:56:37.00
Lisp Advent Calendar 2013 - Qiita [キータ]
http://qiita.com/advent-calendar/2013/lisp
567デフォルトの名無しさん:2013/12/02(月) 06:01:31.77
オッカムの剃刀の話は
優生学が嘘という話と直結してますからなあ
568デフォルトの名無しさん:2013/12/02(月) 09:01:56.55
某エントリを見つつ、グレアムの簡潔さが力というよりも、概念を非本質的なコードを分離して記述できるのが力とするのはどうだろうか。
そのためには言語自体の機能さえ変えれるのが望ましい。最適なパラダイムとその詳細は問題領域によって異なる。
569デフォルトの名無しさん:2013/12/02(月) 09:45:36.71
これのこと?
あなたがLispを無視することができない理由 - 八発白中
http://blog.8arrow.org/entry/2013/12/01/120712
570デフォルトの名無しさん:2013/12/04(水) 14:31:41.04
Lisp は神の言語だけど Scheme は紙の言語
571デフォルトの名無しさん:2013/12/04(水) 15:53:16.08
CLをLispと略すのやめれ
572デフォルトの名無しさん:2013/12/04(水) 20:57:36.59
>>570
Schemeはペーパーだけどarcはベーパーウェア
573デフォルトの名無しさん:2013/12/04(水) 21:34:58.27
うまいこと言ったつもりか
574デフォルトの名無しさん:2013/12/04(水) 23:04:42.10
scheme の時代が来る前に、clojure の時代が来そうだな
575デフォルトの名無しさん:2013/12/05(木) 00:12:25.58
Clojure は Java の蓄積をうまく使える点で技術に明くない人を説得しやすいというのはあると思う
576デフォルトの名無しさん:2013/12/05(木) 00:34:55.70
にゃんぱすー
577はちみつ餃子 ◆8X2XSCHEME :2013/12/05(木) 00:50:27.98
Clojure メインの会社ってどの程度あるものなのん?
578デフォルトの名無しさん:2013/12/07(土) 01:43:22.67
Clojureをコアに運用してる会社は小規模だとおもうし、日本では明言してる2,3社だけなんじゃないかな。
ある程度大きい会社で運用で使おうとしてる開発者もいるみたいだが。
海外をみると、データ解析のREPLやDSLで利用したり、REST APIまわりで使ってる会社もあるみたい。
579デフォルトの名無しさん:2013/12/07(土) 13:49:56.67
つか、発注元がclojureで納品しろと言ったときに、それを断る会社の方が少ないと思うのは俺だけか
580デフォルトの名無しさん:2013/12/07(土) 14:01:07.20
ハチミツとClojure
581デフォルトの名無しさん:2013/12/07(土) 14:25:03.71
おっさん乙
582デフォルトの名無しさん:2013/12/07(土) 18:01:27.71
ごClojureった
583デフォルトの名無しさん:2013/12/07(土) 18:12:56.61
Clojureは買ってでもしね
584デフォルトの名無しさん:2013/12/07(土) 19:21:50.18
EquinoxDesktopEnvironmentのページ行ったら、newlispで動いててワロタ。
http://equinox-project.org/
http://code.metager.de/source/xref/ede/www/web/cgi-bin/ede.cgi
585デフォルトの名無しさん:2013/12/08(日) 05:40:52.24
ERR: value expected : (open result-file "write") called from user defined function eval-template-to-file called from user defined function generate-front-page
586デフォルトの名無しさん:2013/12/08(日) 08:10:17.90
エラメで気付いたから、まともに動いてる所を見てない。
587デフォルトの名無しさん:2013/12/08(日) 18:42:45.10
Lisp Advent Calendarなんてあったのか
意外といるもんだな書く奴w
588デフォルトの名無しさん:2013/12/08(日) 23:32:34.20
Lisp限定ではないけど、MOPもやってるみたい。
ttp://qiita.com/advent-calendar/2013/mop
589デフォルトの名無しさん:2013/12/09(月) 04:28:24.37
突然であれなんだけど
Reader macro と Read macro って
どっちが正解なの?それとも何か区別して使ってるの?
590デフォルトの名無しさん:2013/12/09(月) 19:57:57.24
>>589
clhsだとReader macroだけどon lispだとRead macroだから、ただの略称でどちらでも良いと思われ。
http://clhs.lisp.se/Body/26_glo_r.htm#reader_macro
http://www.bookshelf.jp/texi/onlisp/onlisp_18.html

shiroさんのMOPの一連の記事がいかにもLisp脳。
「テキストボックス自体をスロットとして見せることで、(~ widget 'text-box 'text) というふうに多段で参照させる手もあるけど、
必要以上に中身を見せている感じがして いまいち。(アクセスコントロールがデフォルトで備わっていないCLOSで 中身が見えるのを気にするのも妙な話ではあるけれど、
上のような多段アクセス法を公式なAPIにしてしまうと、後で実装を変えたくなった時に 面倒だったり、途中のオブジェクトへの参照を予想外のところで保持されて困ったりする。)」
http://blog.practical-scheme.net/shiro/20131208-propagated-slot
http://blog.practical-scheme.net/shiro/20131203-mop
http://blog.practical-scheme.net/shiro/20131206-stk

Lispの魅力の一つは言語による制限がほぼない事で、それによって将来的にも制限回避のための妙なコードを書かなくても良い。
マクロは言語設計レベルの話だから、言語の公式ライブラリやDSL、APIの設計ノウハウや経験を応用できる。
マクロによる抽象化は実装を隠蔽し、概念をモジュール化できる。
コードレビューがしづらいという話もあるけど、重複部分を人手で書いてるだけで、機械ができる事の人力化ではないだろうか。
個々の部品をいわゆる関数型の手法で、部品のテストをすれば読むべきコードが劇的に減る。
マクロによる抽象の詳細の把握の必要性も、OSや言語のソースを読む必要性とさほど変わらないように思える。
591デフォルトの名無しさん:2013/12/09(月) 20:30:09.42
公式規格にないMOPが実質標準になってるのは、言語実装のレベルでいじれる事で、より高度な抽象化を目指すためのこだわりに思える。
マクロを書かないのは、関数を書かずにコードが重複して書いてあると喜ぶようなものではなかろうか。
他の言語がASTマクロを導入しようと、それは他の部分との接合が悪く、非本質的なコードを欲求される使い辛いもの、
あるいはコンパイル時内部埋め込みLisp方言になるのではなかろうか。
複数の言語を接合して作られるプロダクトがあるが、LispマクロのS式抽象が相互の変換でも勝るのではなかろうか。
592デフォルトの名無しさん:2013/12/12(木) 20:27:14.81
で、お前らLispで何作ったの
593デフォルトの名無しさん:2013/12/12(木) 21:01:19.29
594デフォルトの名無しさん:2013/12/13(金) 15:12:40.69
普通にWebサーバで使ってるよ
595デフォルトの名無しさん:2013/12/13(金) 16:22:05.90
ダウンローダーみたいなのを作って使ったりしてる
596デフォルトの名無しさん:2013/12/13(金) 19:49:22.08
個人用ツールから同人レベルくらいのものまでは普通に作ってるな。
ライブラリも便利レベルは少ないけど、基本的なものは揃ってるし、コードが圧縮できて良い。
597デフォルトの名無しさん:2013/12/13(金) 20:49:53.62
>>592
昔CADアプリ作った。
お金がもらえるモノはそれぐらいか。
598デフォルトの名無しさん:2013/12/13(金) 21:41:27.07
自分はLispで作ったものの数よりLispを作った数の方が多いな
599デフォルトの名無しさん:2013/12/13(金) 21:44:15.99
AutocadでVBA使えるようになったときは世界中が喜んでたよね。
それまでLispだったから。
600デフォルトの名無しさん:2013/12/13(金) 22:58:13.15
>>594
何それコワイ。苫米地の会社?
601デフォルトの名無しさん:2013/12/14(土) 02:09:37.16
オブジェクトストアやサーバーは、もともと得意分野だったんじゃねーの
602デフォルトの名無しさん:2013/12/14(土) 02:20:24.82
規模の問題かわからないけど、LAMPやjavaみたいに商用ベンダーがオープンにして稼ぐ路線にはならず商圏は広くなかったようだが。
603デフォルトの名無しさん:2013/12/14(土) 02:58:59.73
インテリジェントプログラミングといえばlisp一択だったのに…
604デフォルトの名無しさん:2013/12/14(土) 03:25:39.40
Lisperのブログとかって不満ばかり書かれてて
こうだからLispはすごい、使ったほうがいいみたいなの少なくない?
普及させる気あるの?
605デフォルトの名無しさん:2013/12/14(土) 03:41:20.88
自分で処理系作れるんだから、そもそも普及させて他人の力を借りる必要がない
606デフォルトの名無しさん:2013/12/14(土) 03:43:23.98
布教周りはClojureユーザさんがなんとかしてくれると思う(他力本願
607デフォルトの名無しさん:2013/12/14(土) 06:04:25.62
下手に広めたりするとSICPスレの不毛な荒しみたいなのが
沢山湧いて、うんざりするはめになるに違いない。
608デフォルトの名無しさん:2013/12/14(土) 08:09:24.64
普及させる理由もないしなー。
609デフォルトの名無しさん:2013/12/14(土) 08:22:01.05
>>604
そういう印象を受けたことはないな。
ただ、わざわざブログに書くときっていうのは話のネタになるときだから、
使ってて問題になったところをテーマにするというのは不自然ではないと思う。

「schemeだとマクロと継続の話が多い」みたいに言う人がいるのも同じ理屈。
他のところは特にひっかかるところがない。
実用的にはそれほど使わないところに問題が集中しているならそれは良いことだと思う。
610デフォルトの名無しさん:2013/12/14(土) 13:28:00.23
本当に素晴らしいモノは誰にも教えません
611デフォルトの名無しさん:2013/12/14(土) 14:02:37.57
神秘は秘匿によって神秘たりえるって橙子さんが言ってた。
612デフォルトの名無しさん:2013/12/14(土) 23:36:15.48
lispは素晴らしい言語だが、

1. ライブラリがそれ程充実してない
2. 特にGUI周りが弱い
3. 普通の人はあんなに括弧が多いと引く
4. 言語が柔軟過ぎて、大人数のプロジェクトに向かない?
5. だけど使っている人は自力でなんとか出来る人が多くて、あまり問題にならない
まあ、流行らなくてもあんまり困らないしな、と思う

のスパイラルで、あまり状況が変わることはないんじゃないか
613デフォルトの名無しさん:2013/12/14(土) 23:37:31.36
6. 開発環境が限定されてる
614デフォルトの名無しさん:2013/12/14(土) 23:50:05.28
schemeなら継続でGUIまわりは強いんじゃないの
問題は結局ライブラリが無いことだが
他人の自慰で作られたサポ期間も不明なラッパーとか使ってらんねーし
615デフォルトの名無しさん:2013/12/15(日) 00:02:08.23
FFI があればそれほど問題にならないような気もする。
C 世界のライブラリを経由すると継続が途切れるような実装もあるので、
GUI を Lisp に馴染ませるなら CLOS (等のオブジェクトシステム) を活用するのが自然じゃないか。
その場しのぎでも割と使えるし。
616デフォルトの名無しさん:2013/12/15(日) 00:22:05.58
そういやUNIX界隈のGUIってどうなってんのかな
GUIシステム自体が糞でやっぱ恐ろしいことになってんのかな
617デフォルトの名無しさん:2013/12/15(日) 00:29:06.91
GUIなんて無かった
会社の規約でシェルぐらいしか使えんけどやっぱ遅っそいな
そんなゴミみたいなコードに対してドキュメント作る毎日だけど
LISPより使われてるという
なぜなのか
618デフォルトの名無しさん:2013/12/15(日) 00:31:11.30
おまえらの文章って括弧がないとよくわかんないな・・・
619デフォルトの名無しさん:2013/12/15(日) 00:32:57.07
たまには Interlisp-D のことも思い出してあげてください。
620デフォルトの名無しさん:2013/12/15(日) 01:10:08.23
思い出す前に知らんがな
621デフォルトの名無しさん:2013/12/15(日) 01:30:00.16
>>616
やっぱgtkじゃね?
Qtはデザインの概念がウェブに似てる感じで個人的には好きだけど。
622デフォルトの名無しさん:2013/12/15(日) 03:12:22.50
GLUTでしょ…
623デフォルトの名無しさん:2013/12/15(日) 05:09:49.58
GUI部分は単調で面白くないので、放置されがちだな。
UNIX系のGUIが糞なのは、たぶん作者自体もあまり使わないから。
開発環境はマクロでコードが短いので必要ないが近い。
言語の力が足りないと開発環境の力が必要になる。
有名所でもvimでない素のviらしいからな。
624デフォルトの名無しさん:2013/12/15(日) 05:29:24.92
グレアムが言ってたな。 開発環境に頼らなければならないのは言語が弱い証拠ってのは。
だからグレアムの書くコードは短めの名前を使いがちで書く方の都合でやってるから読み難くなる。

俺としちゃ開発環境を全部ひっくるめて評価しないと意味ないと思うな。
vi しか無い世界でならそこで最高のパフォーマンスを発揮できる言語は何かという評価指標は妥当だろうけど、
現実に vi 以外の選択肢は有るんだし、あえて「弱い開発環境」を使うのはナンセンスだろ。
強い言語があって強い開発環境も有ればそれが最強じゃん。
625デフォルトの名無しさん:2013/12/15(日) 07:47:03.85
グレアムのコードが読みづらいと思った事はないな。
余計なコードが付随する他の言語より非常に読みやすい。
最強の開発環境と言われても、言語と機能がダブるだけで、使いやすさは変わらん。
それに気になる部分があるなら、自分で書けば良いだけだしな。
626デフォルトの名無しさん:2013/12/15(日) 09:24:53.95
信仰告白はもういいです
627デフォルトの名無しさん:2013/12/15(日) 13:00:35.82
eclipseなしのjavaは耐えられないが、C言語はemacsの方がはかどる。
628デフォルトの名無しさん:2013/12/15(日) 13:03:47.70
開発環境に頼らなければならない言語が弱いのなら
括弧に対応したエディタに頼らないといけないlispは弱い
629デフォルトの名無しさん:2013/12/15(日) 13:18:05.76
括弧対応なしのエディタでLispを書くのが好きな人も居てな。
括弧の対応が分からなくなるのは、部品が長過ぎる可能性がある。
あと括弧対応はどのエディタにもほぼ確実についてるのに、
Lispだと使わない自称便利な機能は糞重くて改造も不便でGUIでしか使えない環境にしかついてないんだ。
630デフォルトの名無しさん:2013/12/15(日) 16:02:18.84
ambはschemeの暗部
631デフォルトの名無しさん:2013/12/15(日) 21:13:44.74
それでうまいこと言ったつもりcar
632デフォルトの名無しさん:2013/12/15(日) 21:23:21.47
cdrない
633デフォルトの名無しさん:2013/12/15(日) 22:28:50.78
このスレcurry臭がする
634デフォルトの名無しさん:2013/12/15(日) 23:36:26.51
LISPってRubyみたいにメタプログラミングとかできるの?
635デフォルトの名無しさん:2013/12/15(日) 23:38:44.59
マクロあるだろ。
636デフォルトの名無しさん:2013/12/15(日) 23:41:38.87
RubyってLISPみたいにメタプログラミングとかできるの?と聞くべきだったかもしれない
637デフォルトの名無しさん:2013/12/16(月) 00:38:19.62
メタァ
638デフォルトの名無しさん:2013/12/16(月) 02:06:14.10
コードの意味が提示されていないとデータとプログラムの構造が区別できないから、むしろメタプログラミングしかできないのがLISPとも言える
639デフォルトの名無しさん:2013/12/16(月) 03:26:32.30
Common LispにはpythonとRを利用できるパッケージあるのだから
Schemeにも欲しい
640デフォルトの名無しさん:2013/12/16(月) 06:40:04.99
ffiがあればなんでも出来るぅ!
641デフォルトの名無しさん:2013/12/16(月) 11:43:32.45
はんでメタメタごっちょでごいす
642デフォルトの名無しさん:2013/12/16(月) 22:45:49.76
CUDAで高速動作するSchemeってないですか?
643デフォルトの名無しさん:2013/12/18(水) 06:08:21.62
ISLISPはたまに話題になるけどEuLispはどうなん?
(日本では)ユーザーはそんなにいないのん?
644デフォルトの名無しさん:2013/12/18(水) 21:48:50.67
>>642
schemeでcコンパイラ作ったことがあるから、それをちょっと工夫すればできそうな気がする
645デフォルトの名無しさん:2013/12/19(木) 10:05:08.08
有名どころのLISPってどんなのがあるんだ。
俺俺LISPを出すときりがないからとりあえず実装が3つくらいはあるものっていう前提で。
646デフォルトの名無しさん:2013/12/19(木) 16:12:41.06
Common Lisp
Scheme
647デフォルトの名無しさん:2013/12/19(木) 17:57:41.96
Emacs Lisp
648デフォルトの名無しさん:2013/12/24(火) 14:46:57.29
Clojure
649デフォルトの名無しさん:2013/12/24(火) 15:28:25.44
arc
650デフォルトの名無しさん:2013/12/24(火) 16:49:37.89
>実装が3つくらいはあるもの
651デフォルトの名無しさん:2013/12/24(火) 20:52:35.75
clojure, shenは、下位レイヤーが三種類以上あるって感じだな。
652デフォルトの名無しさん:2013/12/24(火) 21:44:14.00
Cで作ったDLLに組み込めるscheme探してんだけど細かいとこで条件合わん…
自作のは動作も性能もションボリで続ける気なくしかけ
そもそもDLL部分の行数はそんなにないのに規格準拠度の低い俺俺scheme作んのもなんだし…

static linkできて外部ファイルが不要or少なくてバイトコード出力できるのない?
653デフォルトの名無しさん:2013/12/25(水) 21:52:45.26
よくわからんが
組み込み用ならGuileじゃないの?
654デフォルトの名無しさん:2013/12/25(水) 21:58:08.67
make に入ったりして実績はあるけど、ちょっとデカくね?
tiny-scheme あたりの小さい処理系をカスタマイズする方がいいと思う。 これも gimp に入ってたりするから実績はある。
655デフォルトの名無しさん:2013/12/26(木) 01:36:38.90
バイトコード出力がガンだな。
マクロ展開の結果にはどんなデータも入りうるので、
ファイルに出力するのはとてもめんどくさい。

何をしたいのかわからんが、
単にユーザに scheme スクリプト見られたくないという理由なら、
適当な処理系の reader に細工するのがいいんじゃないか。
656デフォルトの名無しさん:2013/12/27(金) 01:38:18.44
>>653-655
レスthxです

作ろうと思っているのはとあるスクリプトプレイヤー用のプラグインで、
利用者はDLLとスクリプトをpackして公開することになる
要SLIB、とかになると利用者に負担かかるし、俺も使いたくない;;
(使ってくれる人が最小で“DLL一個とスクリプト一個”から公開できるのが理想)

Guileは“コア部分はCで実装、機能とかはスクリプトで”みたいな方針ぽいので検討の段階で外してた
TinySchemeは日本語が弱そうなイメージがあるけどどうなんでしょ

バイトコードの意図はまあ>655さんの言うとおりで、
DLL利用者がスクリプトを隠蔽したいかどうかで任意に決められるようにしたかったもの
自前でDLL-処理系間に簡単な暗号化を挟むくらいはヘボの俺でもできるので、
バイトコード出力できない処理系ならそうしてみる

なんか色々後だし情報が多くて申し訳ないです
657デフォルトの名無しさん:2013/12/27(金) 11:08:32.73
>>654
あれっ?
gimpって前はscm使ってなかったっけ?
658デフォルトの名無しさん:2013/12/27(金) 12:12:47.43
lispの類いは自分で書いたのを埋め込むのが一番楽で面倒がなかったりする。
659デフォルトの名無しさん:2013/12/27(金) 16:45:21.58
そうだそうだ。自分で作った scheme が一番可愛い。
そのうち直そうと自分で言い訳しながら、継続やマクロがちゃんと動かないのもお約束だよ
660デフォルトの名無しさん:2013/12/27(金) 16:53:01.83
>>659
規格満たさないschemeってschemeじゃないと思うなー
オレLispなら何でもアリだけど、規格物はちゃんと条件満たさないと
661デフォルトの名無しさん:2013/12/27(金) 19:25:54.57
>>659
自分で作ったものに愛着がある (可愛い) のはわかるけど、
>>658 が言っているのは「自分が作ったものはよく理解しているので扱い易い」というような意味で、
愛着とは別の話じゃないの。
自分自身は自分が作ったものに愛着があるから不具合があっても許せるのかもしれないけど、
>>656 のような用途だと自分だけが使うわけじゃないから、完璧ではなくてもほどほどには動かないと困る。
あるいは将来的にほどほどに動く見込みがないと困る。

自分で作るとコントロールしやすいというのも、コントロールしやすいからベストだということになるわけじゃない。
コントロールしやすさに対して言語処理系としての完成度だとか手間だとかいったトレードオフがある。
662デフォルトの名無しさん:2013/12/28(土) 00:20:09.61
schemeの末尾再帰をCコードに変換したいのだが
要するにトランスレーターを作りたいのだが
できれば継続も再現できるといいのだが
要するに末尾コンテキストをうまいこと1個下げればいいわけだよな
スタックをmemcpyとかなのかな
クロージャはどうしようもないからヒープかな
663デフォルトの名無しさん:2013/12/28(土) 01:11:23.25
CでSchemeコンパイラ作る方が早いと思う
664デフォルトの名無しさん:2013/12/28(土) 01:15:07.21
lispのcトランスレータって生成されるコードはどんな形してるの?
スタックマシンみたいな感じで書かれてるのか
lispの関数定義はそのままCの関数定義で書かれてるのかとか
665デフォルトの名無しさん:2013/12/28(土) 01:29:49.73
>>664
lispの関数は、関数全体をS式を表現する構造体で表現するのが普通かと
666デフォルトの名無しさん:2013/12/28(土) 01:33:46.97
じゃあCに変換したらS式を表現する構造体も組み込まれてかなり冗長なコードになるのか
思ってたのと違う
667デフォルトの名無しさん:2013/12/28(土) 01:47:56.14
>>666
実はevalを高速実行する技術がいろいろありまして…
668デフォルトの名無しさん:2013/12/28(土) 05:00:46.39
>>665は全然トランスレートできてないしただの俄か
>>667も同じやつかevalがどうしたって?
669デフォルトの名無しさん:2013/12/28(土) 05:21:38.64
まあとりあえずSchemeコンパイラについて調べてみるといいんじゃないかな
RABBITからStalinまでいろいろあるけど
670デフォルトの名無しさん:2013/12/28(土) 06:33:15.12
>>669
>>667の方針なら、schemeコンパイラによりもむしろWAMを調べた方が参考になる
671デフォルトの名無しさん:2013/12/28(土) 07:23:55.78
インタープリタならともかく、いきなりCのコード吐くschemeコンパイラ書くなんて難いんでないの?
672デフォルトの名無しさん:2013/12/28(土) 08:15:19.85
rhizome/pi とか chicken とかは CPS 変換してるっぽい。
673はちみつ餃子 ◆8X2XSCHEME :2013/12/28(土) 09:49:13.69
>>660
少々のバグがあるのはしゃーない。
でも、バグは仕方ないにしても、実装する気がないのとか明確な制限とかはドキュメント化して欲しいとは思うけど。

SigScheme みたいに第一級継続の扱いに制限があるものでも、
どういう制限があるのかはっきりしてるなら避けりゃいいだけだし、
全体の完成度は Scheme の名を冠しても違和感はない。
ぶっちゃけて言えば第一級継続を必要とするケースなんてそんなにないしな。
674デフォルトの名無しさん:2013/12/28(土) 10:43:04.94
chicken使ってるけど特殊操作がついてる、ただのCマクロという印象。
単純化すると、あとはCPS変換(継続と末尾再帰)して、CスタックをGCに利用して、scheme型のタグがついてるくらいかな。
objCやgtkみたいなもの。
675デフォルトの名無しさん:2013/12/28(土) 11:32:47.24
Lispがラムダ関数だから関数型というのは分かるけど、
純粋関数型言語の理論背景の関数って具体的に何なのだろ。
数学の関数定義に内部変数を使用しても合法に見えるのだけど。
676デフォルトの名無しさん:2013/12/28(土) 14:20:58.22
入力する値が同じであれば出力結果も同じになるってことでしょ。
http://ja.wikipedia.org/wiki/%E9%96%A2%E6%95%B0_(%E6%95%B0%E5%AD%A6)
内部変数を使うのはもちろんかまわないけど、
それが破壊的に変更されて次の呼出しの結果に影響を与えるようなのは駄目だろ。
677デフォルトの名無しさん:2013/12/28(土) 14:34:29.44
Schemeって何がいいの? CLの処理系と比べると実行速度がだいたい遅いし、
実装上の性能を別にしてもSRFI全部を足し合わせてもも全然機能が足りないからRubyとかの方が断然使い安くて素直だし、
中途半端感が半端ないんだけど。
678デフォルトの名無しさん:2013/12/28(土) 14:45:18.91
関数名がCLよりまとも
679デフォルトの名無しさん:2013/12/28(土) 14:50:56.27
>>677
文法のスマートさ
680デフォルトの名無しさん:2013/12/28(土) 14:58:50.05
>>676
純粋関数型言語って内部変数も禁止されてないか?
681デフォルトの名無しさん:2013/12/28(土) 15:00:39.75
>>679
それはトレードオフがあるだろ。
全部同じような括弧で表すのはある意味では一貫性があって綺麗だけど、
マクロ (構文) の使用と関数呼出しが同じような見た目っていうのを「スマート」って言うのなら、
スマートであることはデメリットでもある。
682デフォルトの名無しさん:2013/12/28(土) 15:01:41.07
>>680
Haskell で let や where を使うってのは内部変数とは言わないのか?
683デフォルトの名無しさん:2013/12/28(土) 15:05:37.64
Scheme覚えるぐらいのわずかな手間でブツクサ言う奴かどうかを見ている
684デフォルトの名無しさん:2013/12/28(土) 15:06:54.57
>>681
「データとプログラムが同一」ということについてschemeはlispよりも一貫している
という点がスマート
685デフォルトの名無しさん:2013/12/28(土) 15:08:17.58
schemeの人は実装依存をバリバリ使うので機能は足りる。
シンプルで直交してて美しい。CL処理系よりかなり小さい。
686デフォルトの名無しさん:2013/12/28(土) 15:11:46.75
>>682
あ、すまん、再代入の話。(変化しないのに変数と命名も妙だが)
687デフォルトの名無しさん:2013/12/28(土) 15:12:22.34
>>680
値がどこでどう変更されるか分からないことを怖がるなら、むしろグローバル変数を問題にすべきではないかと
688デフォルトの名無しさん:2013/12/28(土) 15:14:38.47
ぶっちゃけると、大学で教えるときはschemeじゃないと無理
「来週までにテキスト100ページ読んできて」とか言える大学じゃない限り、lispを教えるのは不可能
689デフォルトの名無しさん:2013/12/28(土) 15:32:48.45
>>677
Scheme の出自としては制御を第一級継続 (の前身であるアクタ) の概念で定義できるのではないかというところから始まってる。
http://ja.wikipedia.org/wiki/Scheme#.E6.A6.82.E8.A6.81
だから強いて言うなら継続を基礎としてフォーマルな意味論を付けられていることが Scheme の利点と言えば利点なんじゃないかな。

数学なんかでも 1+1=2 を自明なものとしてではなくより根源的な概念の上に定義しようとしたりしてるでしょ。
物理でも原子こそが最小の要素と言ってたところから、それの構成要素である原子核と電子、
更には陽子と中性子という構成要素を見付けたと思ったら今度は素粒子とか言ってる。

もちろん構成要素が何かにかかわらず原子は原子なのだし、
原子ベースで構築された理論が大幅に変わったりもしないわけだけど、
理論的裏付けがあるとその上に載せるものがどうあるべきかが自然にわかってくる。
690デフォルトの名無しさん:2013/12/28(土) 15:38:52.22
>>686
間違えた、式で定義すれば変数と言っていいわ。

ただ関数定義の内部で再代入できない理由がよく分からない。
変化させて集めるタイプの数学的定義は直接書いちゃいかんの?
wikipediaの純粋関数型言語で、遅延評価が要素に入ってるのも分からない。
数学に関係ないし、昔は先行評価のOCamlも純粋関数型言語扱いだったのに。
純粋関数型言語の数学的基礎って、Lisp族よりしっかりしてるの?
691デフォルトの名無しさん:2013/12/28(土) 15:42:24.65
>>690
プログラムをどんな大きさでブラックボックス化しても、調べるまでもなく値に一貫性があるというのが利点なんだから
692デフォルトの名無しさん:2013/12/28(土) 15:43:51.35
>>677
>>689
つけ加えると直交したプリミティブは任意の置き換えが可能になる。
継続は様々な制御構造などの基盤になり、それらの書き変えを可能にする。

人数多いなw
693デフォルトの名無しさん:2013/12/28(土) 15:46:31.87
>>691
プログラム上の都合のために、数学的基礎を制限したの?
694はちみつ餃子 ◆8X2XSCHEME :2013/12/28(土) 15:48:15.32
>>690
> wikipediaの純粋関数型言語で、遅延評価が要素に入ってるのも分からない。
> 数学に関係ないし、昔は先行評価のOCamlも純粋関数型言語扱いだったのに。

Wikipedia の記事を見たら「多くの純粋関数型言語は」となってる。
必須要件というわけではないんじゃね。
純粋関数型言語のトレンドってことだと思う。
もしかすると遅延評価の方が純粋関数型にしやすい何らかの要素があるくらいの意味かな?
695デフォルトの名無しさん:2013/12/28(土) 15:50:19.75
>>693
逆だよ
数学的表現でそのままコーディングできるのが純粋関数型言語
696デフォルトの名無しさん:2013/12/28(土) 15:56:36.78
僕はScheme嫌いなんだよね、泥臭い所(現実の問題を解決するのに必要な部分が実装依存とかいう部分)を避けて規格を作ったせいで各Scheme実装毎の違いがあって何かのアプリケーションを書く時にオレオレScheme毎に違いが出過ぎちゃうのが駄目。
Schemeの定義が実際の業務じゃなくて学術向けの定義までしかしてないからなんだろうけど。
学問的には綺麗だけど世の中のアプリケーション書く時に同じレベル(RnRS)でも同じコード動かないとか。

ここら辺なんとかならんものなん?
697はちみつ餃子 ◆8X2XSCHEME :2013/12/28(土) 15:57:39.33
数学的表現を基準にするなら無限の大きさの配列を (全ての場合ではないが) 表現しうるという点で遅延評価に利点があるな。
698デフォルトの名無しさん:2013/12/28(土) 15:58:04.99
>>694
下のリストで遅延評価でない言語が非純粋扱いされてる。

>>695
だとすると内部変数を書き変える定義はできませんという条件が数学にあるの?
ラムダ関数や形式意味論の方がよほど数学してるような。
699デフォルトの名無しさん:2013/12/28(土) 16:00:37.55
>>696
R7RSに期待しとけ。
700デフォルトの名無しさん:2013/12/28(土) 16:05:42.50
どうせ掛け算とかが任意の桁数を扱えるようになってるんだから、
実数の精度とかも任意に変えられるようにするべきだよな。
701はちみつ餃子 ◆8X2XSCHEME :2013/12/28(土) 16:06:59.82
>>696
その意見には同意。
Schemeの仕様が簡潔とか素直とか綺麗とかいうのは、簡潔で素直で綺麗になった部分だけを書いてるからで、
議論途中のものとかまだ俎上に上がってないものとかが無数にある。

ただ、様々な実装が出てくる中で実用を通して必要なことや問題点をあらい出していこうという価値観もあるみたいで、
そこはむしろ実用指向なんだよね。
今この時点で実用できるものじゃなくて、将来にわたっても実用できるものって感じで遅々としてはいるけど。
702デフォルトの名無しさん:2013/12/28(土) 16:11:41.26
処理系の実装が簡単すぎるのが悪い
703デフォルトの名無しさん:2013/12/28(土) 16:17:40.79
>>698
ラムダ関数や形式意味論って、内部変数を書き変える定義もあるの?
704デフォルトの名無しさん:2013/12/28(土) 16:19:17.06
>>696
「現実の問題を解決するのに必要な部分が実装依存」って機械語以外全部なんじゃ…
705デフォルトの名無しさん:2013/12/28(土) 16:25:23.76
>>703
Lispやschemeは数学的基礎をはっきりさせてるという話。
ラムダ関数はそれだけでチューリング完全なので、定義できるはず。
706デフォルトの名無しさん:2013/12/28(土) 16:33:30.47
>>705
λ関数の変数代入とlispの変数代入ってセマンティクスが違くね?
707デフォルトの名無しさん:2013/12/28(土) 17:33:35.92
>>706
あー、ただの糖衣構文とみなせるけど、ラムダ関数の変数と別の変数概念になるのか。
それでもラムダ関数が基礎にある事は変わらないし、数学の関数の定義では内部に条件がないというのも変わらんが。
708はちみつ餃子 ◆8X2XSCHEME :2013/12/28(土) 17:41:55.87
計算モデルは違うと思う。 代入というよりシャドウじゃないの。
代入で表されているところを変形してシャドウに変えられる (というかα変換すれば新しい変数ってことになる) 場合というのは有り得ると思うけど、
それは状態として持っていたものを陽な変数としてくくり出すってことだし、結局は関数内部で状態をもたないことになるはず。
709デフォルトの名無しさん:2013/12/28(土) 18:11:37.00
二つの変数 x と y があり、入力 x に対して、出力 y の値を決定する規則(x に特定の値を代入するごとに y の値が確定する)が与えられているとき、変数 y を「x を独立変数 (independent variable) とする関数」或いは簡単に「x の関数」という。
http://ja.wikipedia.org/wiki/%E9%96%A2%E6%95%B0_%28%E6%95%B0%E5%AD%A6%29

ラムダ関数はともかく、数学の関数の定義だと内部では状態を持ってもいいように読める。
そうならば数学上、不必要な制限がついてることになる。
純粋、あるいは関数といえるほどの数学の基礎があるのか、Lispにはラムダ関数の拡張という基盤がある。
こちらの方が純粋な関数なのではないか。
710デフォルトの名無しさん:2013/12/28(土) 18:13:34.69
別の言い方をすると、純粋関数型の数学的基盤が分からない。
数学より制限しているならば、制限関数型と呼ぶべきではないか。
711デフォルトの名無しさん:2013/12/28(土) 18:18:41.61
>>709
俺には状態を持ってはいけないように読める。
712デフォルトの名無しさん:2013/12/28(土) 18:20:42.37
状態が在っても無くても表現できるものは変わらないんだから
数学的には何も制限されてないんじゃないの?
713デフォルトの名無しさん:2013/12/28(土) 18:26:44.18
ここで頓珍漢な議論するより、プログラム意味論とかの本読んだ方が早いで。
714デフォルトの名無しさん:2013/12/28(土) 18:27:34.72
>>709
そもそも数学には「入力」や「出力」なんて概念はない
ドメインとコドメインの関係が関数
ドメインにテンポラルな集合(時間)を加えたときの関係を入力出力と表現してるだけ

数学的には、入力や出力という概念を持ってる方が不必要な制限がついている
「状態」は、関係にテンポラルな集合を入れて分解するときにはじめて見えてくる概念

その意味で「状態」は不純
715デフォルトの名無しさん:2013/12/28(土) 18:27:50.46
>>711
内部にだぞ。
716デフォルトの名無しさん:2013/12/28(土) 18:29:26.71
>>712
状態がある事で新しく表現できるようになるモノは「時間」
717デフォルトの名無しさん:2013/12/28(土) 18:31:01.37
時間なんて所詮は1パラメータ変換群でしょう?
そんなもの静的に表現できますよ
718デフォルトの名無しさん:2013/12/28(土) 18:32:17.99
すると状態を使用する事も使用しない事も選べるのと、状態を使用してはいけないのと、どちらが数学的な関数に近いのか。
719デフォルトの名無しさん:2013/12/28(土) 18:35:21.06
HaskellもSTモナドとか使えば内部状態をエミュレートできるんじゃなかったっけ?
720デフォルトの名無しさん:2013/12/28(土) 18:36:35.47
>>712
状態を入れると「すべてのパラメータ」に時間の概念が入る
721デフォルトの名無しさん:2013/12/28(土) 18:38:48.32
>>718
どっちも数学的表現は可能
ただし、状態を入れる場合は、各項に「ステップt」という余計な表記が必要になる
722デフォルトの名無しさん:2013/12/28(土) 18:38:55.86
つまり、パラメータに時間の概念を入れたり入れなかったりを
選択できる純粋関数型のほうが色々選べるってことか!
723デフォルトの名無しさん:2013/12/28(土) 18:40:38.65
グローバル変数全てをパラメータとして持てば関数型ってことですね
わかりました
724はちみつ餃子 ◆8X2XSCHEME :2013/12/28(土) 18:41:54.66
>>719
そう。 それ。 状態を変数にくくり出した上でモナドで隠蔽したりする。

そういった風に表現方法を変更する (というか無視する?) ことがアリで「等価」なので
>>705 が言うチューリング完全であるということを根拠に内部変数を書き換えられるなんてことにはならない。
内部変数を書き換えるのと等価な内部変数を書き換えない処理を書けるかもしれないんだから。
725デフォルトの名無しさん:2013/12/28(土) 18:50:30.16
>>721
内部の状態をあらわすのに関数定義の内部の各項で「ステップt」という表記が必要という意味?
純粋関数型に「ステップt」表現はあるの?STモナドという迂遠な概念は必要なの?
726デフォルトの名無しさん:2013/12/28(土) 18:57:10.23
>>722
純粋な関数型はどっちでも、数学の論文に書くときの表現とコード上の表現が同じ
再代入がある言語は、コード上の表現は a=b でも、数学の論文に書くときの表現が a_t = b になるってこと
727デフォルトの名無しさん:2013/12/28(土) 18:58:04.35
そもそもLISPを使うのに数学的背景とか理解してなくてもいいだろ。
知ってるに越したことはないけど知らなくても知らないなりで使える。
おまいら日本語の文法とかそんなに考えて話してるか?
728デフォルトの名無しさん:2013/12/28(土) 18:58:58.79
>>723
変数にパラメータがついてて、プログラムのどこかで代入が行われるたびにそのパラメータが1加算されるなら純粋関数型
729デフォルトの名無しさん:2013/12/28(土) 19:06:39.37
>>725
再代入OKの言語では、内部の状態を「数学的にあらわすとき」に関数定義の内部の各項で「コード上にないはずの」「ステップt」という表記が必要という意味

純粋関数型も「ステップt」を表現してもいいけど、そのときにはコード上にも数学的表現の上にも陽に「ステップt」が出てくる

STモナドは状態というよりも参照を抽象化した概念の気がしないでもない
730デフォルトの名無しさん:2013/12/28(土) 19:07:41.32
>>726
STモナドは表記ちがうような。モナドは圏論だし関数でなく圏論型言語なのでは。

>>728
するとOCamlは純粋関数型?wikipediaの間違い?

結局、数学の論文上の表記に似せた言語という意味なの?
731デフォルトの名無しさん:2013/12/28(土) 19:09:29.69
それなら数学表現型言語と呼ぶべきなような。
732デフォルトの名無しさん:2013/12/28(土) 19:23:25.07
>>731
「関数」の意味が違うだけ
基礎数学での関数が <x, fx> の一意な対応で定義されてて、それを純粋と呼んでるだけ

だから、本来なら言語の種類を分けるんじゃなくて、各言語の中で代入の種類と関数の種類を分けるべきだった
733デフォルトの名無しさん:2013/12/28(土) 19:35:08.56
何だよ基礎数学って?
純粋数学のことかよって突っ込みたくなる。
734デフォルトの名無しさん:2013/12/28(土) 19:37:53.30
>>732
基礎数学?(検索で出ないけど基礎論?)という分野の関数を純粋と呼称してるだけと。
それでも内部の状態は持てても良さそうなので、ステップt記法を言語に導入し、状態はただの表記差でどちらも使用して良いとなりそうです。
関数型や純粋はあまり良い表現ではなさそうですね。
735デフォルトの名無しさん:2013/12/28(土) 19:42:12.56
引数適用型パラダイムとでも言った方が良さそう。
(作用型言語と呼び方もあるらしい?けど分かりにくい)
736デフォルトの名無しさん:2013/12/28(土) 19:43:49.25
>>733
数学を構築する際にその基礎となることを研究するための数学
系の公理的定義を議論するのはこの分野
737デフォルトの名無しさん:2013/12/28(土) 19:45:34.55
状態否定型パラダイム(言語ではない)の方が良いのかな?
732さん、長々とありがとうございました。
738デフォルトの名無しさん:2013/12/28(土) 19:46:56.37
数学基礎論のこと言ってるのか。
739デフォルトの名無しさん:2013/12/28(土) 19:50:16.65
>>734
というか、再代入を使う言語は、変数を宣言した時点で、すでにステップtで表現できる状態を内部に持っていて、それはコード上はプログラマからも隠されている
プログラムのどこかで代入が行われるたびにステップを加算されるので、ただの表記差の問題とは断言できない
740デフォルトの名無しさん:2013/12/28(土) 20:00:18.29
Haskellが良いとされてるのは、関数が純粋だからじゃなくて、純粋な部分とそうでない部分をきちんと分けることができるから
741デフォルトの名無しさん:2013/12/28(土) 20:41:15.33
変態言語Lispでも簡単にDSLとして組めるけど、タイプ数が増えるし使わないな。
○○言語のこの機能が素晴しいが、簡単にマクロで組める世界。
抽象構文木を直接簡単に扱えるので、やりたい放題。
マクロもevalもeval-whenもリーダーマクロもあるんだよ。
742デフォルトの名無しさん:2013/12/28(土) 20:43:17.98
そろそろタイプ数を気にする時代は終わってると思う
743デフォルトの名無しさん:2013/12/28(土) 20:48:14.43
>>741
中身がOCamlで見た目がHaskellな言語が欲しいので
DSLとして組んでください
744デフォルトの名無しさん:2013/12/28(土) 21:04:47.10
機能と見た目は違うな。
745デフォルトの名無しさん:2013/12/28(土) 21:09:27.90
計算可能性が同じならば、見た目は重要な機能の一部
有限の時間でプログラミングするということを忘れてはいけいない
746デフォルトの名無しさん:2013/12/28(土) 21:33:21.35
見た目もS式の方が変換が容易で便利。
747デフォルトの名無しさん:2013/12/29(日) 21:13:58.52
純粋関数型なLispにcall/ccを導入するだけで不純になるっていう例をどこかで見た気がするんだけど見付からない。
知ってる人いる?
748デフォルトの名無しさん:2013/12/29(日) 21:22:47.13
749デフォルトの名無しさん:2013/12/29(日) 21:41:56.54
副作用ではない
主作用だ
750デフォルトの名無しさん:2013/12/29(日) 22:02:03.39
Lisp系の問題としてライブラリの少なさやマクロの自由さがよく言われるけど。
実際には実装依存やライブラリの注意点、効率、スレッド、最適化、多言語化、並行、過負荷、スケーラビリティなどの実務部分の情報が少ないことじゃないだろうか。
あとグレアム含めて、エバンジェリストのコード公開が少ないかも。あっても例示のみ、githubでバリバリ公開とかが他言語に比べて少ない。
751デフォルトの名無しさん:2013/12/29(日) 22:08:11.32
lisp系の問題はユーザが少ないことだけですよ
752デフォルトの名無しさん:2013/12/29(日) 23:49:12.22
githubを見るとLISPも(他よりは少ないにしても)それなりにあったりするんだよな。
ただ、どのLISPを使っているかを見て分類していくとかなり分断されてる。
こういう状況が情報共有を阻んでいるのだと思う。

C++とか環境依存な部分が多いように見えて実質はPOSIX(というかLINUX?)とWindowsを意識してればほとんどカバーできちゃうし、
コンパイラもVisualStudioとGCCとCLANGだけ考えてればだいたい問題ない。
色んな不満がありつつもとりあえずこれ使っておけば行き詰まってもどっかに情報があるだろうという変な安心がある。
753デフォルトの名無しさん:2013/12/30(月) 00:36:28.34
わかる
754デフォルトの名無しさん:2013/12/30(月) 00:51:27.21
かと言って多様性もLISPの力のひとつだから統合してユーザーが増えるのが良いかというとそうでもないかなって感じだし、
LISPの宿命として受け入れるしかしょうがないんじゃないの。
755デフォルトの名無しさん:2013/12/30(月) 01:34:22.36
少し前まではC言語さえ環境依存だらけだったよ。
みんなOS毎のテクニックを憶えて書いてた。
共通化を意識しすぎて、OSや実装固有の情報を軽視しすぎではないだろうか。
756デフォルトの名無しさん:2013/12/30(月) 01:54:58.88
C言語そのものは移植性高いだろ。
環境依存の処理を書いていただけで、Cそのものは
生まれからこんにちに至るまで依存は低い。
757デフォルトの名無しさん:2013/12/30(月) 02:06:06.54
環境依存の処理なしで、まともなアプリケーションは書けなかったよ。
環境をあまり気にせずに書けるだけのライブラリが揃ったのはここ数年。
758デフォルトの名無しさん:2013/12/30(月) 02:41:09.36
だから、それはC言語が環境依存だったんじゃなくて
C言語で環境依存のコードを書いたってだけのことだろ。
759デフォルトの名無しさん:2013/12/30(月) 03:05:58.45
環境依存のないそれなりの規模のCプログラムなんて見た事ないわー。
基本データ型でさえ機種依存だったのに。autotoolsさえ使ったことなさそう。
760デフォルトの名無しさん:2013/12/30(月) 03:14:22.52
だから、それはC言語が環境依存だったんじゃなくて
C言語で環境依存のコードを書いたってだけのことだろ。

パーかテメェは
761デフォルトの名無しさん:2013/12/30(月) 03:16:44.64
>>759
基本データ型の int は環境によって 16bit だったり 32bit だったりするけど、
そういうレベルの話しているのか?

だとしたらバカだろお前w
762デフォルトの名無しさん:2013/12/30(月) 03:19:14.29
規格に大量の機種依存が入ってるんですが。
763デフォルトの名無しさん:2013/12/30(月) 03:20:48.37
>int は環境によって 16bit だったり 32bit
764デフォルトの名無しさん:2013/12/30(月) 03:33:48.40
「C言語に環境依存の規格を追加したもの」 ≠ 「C言語」

intは「C言語」ではbitサイズは規定していないから
それを以って環境依存を論ずることは出来ない。
765デフォルトの名無しさん:2013/12/30(月) 04:52:21.48
10年前に大学の卒研でUnix上で書いたコードが、Makefileだけ書きかえれば、Windows8上でコンパイルできて実行もできる
C言語だけど感動した
766デフォルトの名無しさん:2013/12/30(月) 05:00:47.82
どの言語も、環境依存じゃなくて、言語のバージョン変更や標準ライブラリの変更が問題になるのがほとんどな件
767デフォルトの名無しさん:2013/12/30(月) 05:47:10.56
C言語に機種依存の規格を盛りこんだC言語+αをC言語そのものだと言い張るパーすけは
http://ansaikuropedia.org/wiki/LISP#Lisp.E3.81.A8.E7.A4.BE.E4.BC.9A.E5.95.8F.E9.A1.8C
の写真の右手振り上げているヤツだろ。ラリってんじゃねぇよ
768デフォルトの名無しさん:2013/12/30(月) 06:15:07.14
C言語で環境(処理系、機種、OS、ライブラリの差)を考慮せずにプログラムね。
GUIも日本語処理も満足に出来ないか、車輪の再発明だけで終わりそうだな。
GNUツールチェーンも環境依存処理が基盤にあるから使えないな。
あ、konやfb系も駄目だから日本語表示できないわw
769デフォルトの名無しさん:2013/12/30(月) 06:32:55.67
C言語はあくまでC言語だ。
ライブラリはライブラリ。

内(C言語そのもの)と外(環境)の切り分けも出来ないのだろうか…
770デフォルトの名無しさん:2013/12/30(月) 06:53:12.25
処理系、機種、OS毎の処理が出来ないだけでも、上に書いた全てが出来ないので変わらないです。
C言語の人はみんな環境の差にいかに対応するかに悩んで作るんです。
悩む部分が減ってるのはライブラリやツールの作者がかわりに悩んでくれたからです。
ヘッダファイルの位置さえ違うからな(笑)

バカは放置しといて。

日本のLisperは標準規格にこだわりすぎじゃないか?
移植性も考慮するけど、環境依存部分もバリバリ使う、そしてその情報を書く方が良いのでは。
771デフォルトの名無しさん:2013/12/30(月) 07:00:42.92
教科書的なお手本コードはよく見るけど、実装依存機能で機械側に降りてバリバリ書くノウハウはあまり見ない。
商売に使うには、そういう機械に近い部分も重要だと思うんだよな。
富豪プログラミングなんて夢で、ハード代でヒィヒィ言ってるわけで。
Lispの長所の一つに機械から遠い部分も近い部分も、簡潔に書ける事があると思うのに、機械よりのノウハウ情報が少ないと思う。
772デフォルトの名無しさん:2013/12/30(月) 07:16:18.72
> 処理系、機種、OS毎の処理が出来ないだけでも、上に書いた全てが出来ないので変わらないです。
> C言語の人はみんな環境の差にいかに対応するかに悩んで作るんです。
> 悩む部分が減ってるのはライブラリやツールの作者がかわりに悩んでくれたからです。
> ヘッダファイルの位置さえ違うからな(笑)

C言語で規定されていないところで力説してもな。
ズレてんだよ
773デフォルトの名無しさん:2013/12/30(月) 12:25:24.94
バカは放置しといてって自己申告してるじゃん
774デフォルトの名無しさん:2013/12/30(月) 13:33:35.67
>>772
autotoolsを絶滅させてから言ってくれ
775デフォルトの名無しさん:2013/12/30(月) 13:41:38.02
例えば、「C言語で〜」で仕事請け負って、コード見たら、ソースの中に機械語を直接書き込むような変な言語だった場合、詐欺になるの?
で、その仕事を完成させたときに、「C言語であれ作りました」と言ったら虚偽になるの?
776デフォルトの名無しさん:2013/12/30(月) 13:57:21.87
C言語+処理系定義で調べよう
777デフォルトの名無しさん:2013/12/30(月) 14:00:19.02
契約と業界慣習によるが、さすがにインラインアセンブラまででは
778デフォルトの名無しさん:2013/12/30(月) 14:18:53.20
昔、関数を

func()
int a, b;
{ 本文;}

みたいな書き方してたのを思い出した

あれ、なんだったんだろう…
779デフォルトの名無しさん:2013/12/30(月) 14:40:09.77
K&Rも遠くになりにけり
780デフォルトの名無しさん:2013/12/30(月) 14:50:51.27
第一版は実際見たことない
781デフォルトの名無しさん:2013/12/30(月) 15:09:55.32
Rはもう死んだしな
782デフォルトの名無しさん:2013/12/30(月) 15:10:50.13
>>778
さすがに爺でも、もうそんな書き方しないだろう。
783デフォルトの名無しさん:2013/12/30(月) 15:15:09.75
>昔、
784デフォルトの名無しさん:2013/12/30(月) 15:27:27.23
javascriptで
function func()
// コメント
{ 本文; }
と書いて郷愁にふけてる
785デフォルトの名無しさん:2013/12/30(月) 16:39:23.97
>>782
本についてるニューラルネットのサンプルコードをダウンロードしたら >>778 みたいな感じだった
大学の研究室とかではいまだに現役な気がする
786デフォルトの名無しさん:2013/12/30(月) 17:53:22.95
ANSI X3.159-1989が24年も前なことに驚いた
そりゃ歳もとるはずだわ
787デフォルトの名無しさん:2013/12/30(月) 18:09:28.47
今ホームをあさって調べたら、最古のコードがscmファイルでタイムスタンプが1984年だった
大学で受け継いだやつだった
788デフォルトの名無しさん:2013/12/30(月) 18:19:12.72
touchしていい?
789デフォルトの名無しさん:2013/12/30(月) 19:04:26.74
ライブラリとか言ってる間に書けよ。
ドメインに応じた機能を関数やマクロで用意できるのがLISPなんだろ。
790デフォルトの名無しさん:2013/12/30(月) 19:11:47.35
(やれば) できる
(作れば) ある
791デフォルトの名無しさん:2013/12/30(月) 19:12:18.18
>>789
どのドメインにも(まともに動くかどうかは無関係に)共通した関数やマクロを書けてしまうのがLISP
プロトタイプをサッと書くのには適しているが、ライブラリみたいな頑健性が必要なモノを書くのは難しい
792デフォルトの名無しさん:2013/12/30(月) 19:23:32.61
>>789
そりゃ書けば在るに決まってますがな。
誰が書いても同じようになる部分をすっとばして更にその先へ行くための道具がライブラリだろ。
793デフォルトの名無しさん:2013/12/30(月) 19:24:29.96
「作ればあるもん」w
794デフォルトの名無しさん:2013/12/30(月) 20:39:39.12
仕事で使うわけでもなし、大手組織の後援があるわけでもなし。
ライブラリの多い言語は、それなりの組織が積極的にサポートしたものばかり。
795デフォルトの名無しさん:2013/12/30(月) 20:43:52.64
MSかgoogleの支援が無いとな。
796デフォルトの名無しさん:2013/12/30(月) 21:02:39.45
perlは誰がサポートしたん?
797デフォルトの名無しさん:2013/12/30(月) 21:08:26.37
perlはオライリーあたりが支援してたかな。
それよりもUnix系のbaseに入れたのが大きいだろうけど。
798デフォルトの名無しさん:2013/12/31(火) 03:03:23.44
というか、スクリプトで使ってるうちは、ライブラリの未整備部分はFFIでも速度的には十分な件
799デフォルトの名無しさん:2013/12/31(火) 08:57:31.54
clojureが強い最大の理由はSTMでスケーラビリティが高いからじゃないかな。
800デフォルトの名無しさん:2013/12/31(火) 13:42:43.97
javaの資産があるしclojure自体もライブラリ多いし
つくればあるって言わなくても良いところ
801デフォルトの名無しさん:2013/12/31(火) 18:05:02.79
javaの資産といってもCへのffiとそれほど差があるわけではないでしょ。
せいぜいGC関連の手間が減るくらいでは?
企業が採用する時の条件に、高負荷状態での信頼性、スケーラビリティ、並列プログミングの容易さ、
GCの効率やタイミング操作、そういった実装についての情報があるんじゃないかな。
事実かはともかく、RoRはスケールしない、Linuxは高負荷の挙動が怪しい、
これからは並列が重要になるが関数型言語は並列しやすい、などの話はよく出るようだけど。
802デフォルトの名無しさん:2013/12/31(火) 18:19:49.41
そこでFreeBSD
803デフォルトの名無しさん:2013/12/31(火) 18:21:54.10
セキュリティにしても、例示コードはよく出るけど、個別の事例集が不足。
ライブラリのセキュリティ評価は、多言語処理部分はどの程度信頼できるのか。
ゲームでもハードやメモリなどを直接いじるために、処理系はどういった手段を容易してるのかとか。
特にschemeだと標準準拠を移植性だと思って教科書的過ぎるコードを書くか、
あるいは移植性を無視した実装ベタベタなコードを書く人が多い気がする。
実装依存機能を利用しながらも、うまく隠蔽して移植性を考慮するノウハウとかもっと出て良いと思う。
804デフォルトの名無しさん:2013/12/31(火) 18:38:20.50
この処理系のサポートは親切で対応が早いとか、逆に作者がメンテもう無理と叫んでたとか。
ライブラリの作者に気軽に連絡がとれた、コミュニティが初心者にも親切とか。
このライブラリは実質サポート切れ、かわりにこれが使える、メンテナ行方不明とか、そういうのも情報だな。
805デフォルトの名無しさん:2013/12/31(火) 18:45:45.27
LISP Library 365 と銘打ってライブラリを紹介する企画が出てる。
http://atnd.org/events/46706
今のところおにぎりの人が自分で書くつもりの分だけしか予定が埋まってないし、
参加表明が4人しかいないのでネタを蓄えている人は参加してね。
806デフォルトの名無しさん:2013/12/31(火) 19:12:19.24
Javaはもちろん、Haskell だってあっと言う間にライブラリが充実してる。Lisp系で対抗しうるとすれば、Clojure にリソースを集中するしかないのではないだろうか。
807デフォルトの名無しさん:2013/12/31(火) 19:13:36.30
CのFFIってクッソ面倒だから
構造体とかマッピングする必要があったりするし
808デフォルトの名無しさん:2013/12/31(火) 20:19:35.29
でもなんとなくLISPっていうくくりで見ると Clojure ってちょっと筋が悪い気がするんだわー。
ライブラリっていうか言語仕様そのものも Java に寄生してる感じだしね。
809デフォルトの名無しさん:2013/12/31(火) 21:18:13.53
ClojureをLispと呼ぶのはやっぱ違う気がする
いい加減スレチっぽいけど
810デフォルトの名無しさん:2013/12/31(火) 21:49:35.46
ffiのマッピングはある程度自動化できてるはず。
Cの限定的なパーザ通すだけだからね。
例によって紹介やドキュメントがほとんどないけど。
811デフォルトの名無しさん:2013/12/31(火) 22:54:12.83
Clojure は、Lisp として生まれたというより、シンプルさを追求して Lisp を選択した、ってことらしい。そこらへんにlisperが違和感を感じるのかもね。
812 【大吉】 【1202円】 【東電 60.3 %】 :2014/01/01(水) 04:02:23.48
((((((((((((((((((((あけおめ]
javaなんて嫌ですgcc的なLISPがあればいいじゃんと思ったが
GNU CLISPはメンテされてそうにないし
天に見放されてるな
813デフォルトの名無しさん:2014/01/01(水) 18:01:17.74
まさかLispスレでこんな初歩的な詭弁を見ると思わなかった

Lispインタープリタは学生でも作れる→ コンパイラも学生でも作れる

Haskellは基礎数学が記述できる → 数学全般もLispより上
814デフォルトの名無しさん:2014/01/01(水) 18:12:15.72
>>813
もっと驚きなのは
ベン図かいたらすぐ分るこの詭弁を
Lispや周辺技術に、ある程度詳しい人間がやってたという事
素人が知らないうちに間違ってしまったとかじゃない
815デフォルトの名無しさん:2014/01/01(水) 18:37:22.80
いまどきLispなんて使っているのは
時代遅れの老害か馬鹿のどちらか
816デフォルトの名無しさん:2014/01/01(水) 18:44:25.26
どんなプリケーションも、システムが極限まで達するとLisp的なDSLなり機能なりを組み込むことになる
817デフォルトの名無しさん:2014/01/01(水) 19:07:27.03
馬鹿さが極限にまで達してしまったか
可哀想に
818デフォルトの名無しさん:2014/01/01(水) 19:40:21.70
↑何を見ても馬鹿としかいわない馬鹿
819デフォルトの名無しさん:2014/01/01(水) 19:54:43.58
LISPは実在しない。

LISPとは、素晴しいプログラミング言語を、人工知能を記述するに足るレベルの高いプログラミング言語を使いたいと望む人々の間で自然発生的に生まれた理想の言語である。

はじめはジョークに過ぎなかった。
LISPはこの世のどこかにいるはずの理想の言語だった。
しかしそれは当時のまさに『糞』と呼ぶに相応しい言語にウンザリしていたプログラマの間で瞬く間に広まって行った。
LISPならこう書ける。LISPのあのマクロシステムは良かった。
ユーザーはそうやって、少しずつ理想の言語LISPのイメージを固めていった。
LISPはS式で記述をする、LISPに敵対する言語はJAVAである、LISP処理系はLISPで書かないと落ち着かない。
そしてLISPは親しみやすいことにポール・グレアムを記述した言語なのだ!

LISPはこうして、プログラマの理想の言語のイメージのコラージュとして生まれたのである。
プログラマはLISPを欲した。故にLISPは存在するのである。
820デフォルトの名無しさん:2014/01/01(水) 19:57:52.16
lispとjavaって敵対してたのか…
821デフォルトの名無しさん:2014/01/01(水) 23:22:51.60
そこらはグレアムさんのエッセイとかを踏襲したネタなのでマジレスしないでね。
822デフォルトの名無しさん:2014/01/02(木) 16:34:33.05
ClojureScriptみたいなのって他にあるん?
823デフォルトの名無しさん:2014/01/02(木) 16:41:11.04
http://kybernetikos.github.io/Javathcript/
http://www.cliki.net/javascript

上は独自lispの埋め込みで、下はCLのコンバータかな?
824デフォルトの名無しさん:2014/01/05(日) 10:20:37.33
そういうのってだいたいは中途半端というか結局は出力結果を意識しないとうまく使えなかったりするんだよね。
JSをある程度は理解した上でより楽をしたいとか生産性を上げたいとかだったらいいんだけど、JSがわからないからそっちに逃げるっていうのだと破綻しやすい。
825デフォルトの名無しさん:2014/01/06(月) 22:54:54.39
プログラムを読むのに状態なんとかの知識があると楽にできるみたいに聞いたことがあるんですけど
何だったか忘れてしまいました
英語でオーマトントンとか言ってたと思うんですけどググっても見付かりません!
826デフォルトの名無しさん:2014/01/06(月) 22:58:55.06
状態機械?
827デフォルトの名無しさん:2014/01/06(月) 23:04:11.28
ステートマシーン
FSM=有限状態機械
など
828デフォルトの名無しさん:2014/01/07(火) 00:18:41.76
俺の大学ではオートマトンはオートマトンだった。
オートマトンでぐぐればいいんじゃね?
829デフォルトの名無しさん:2014/01/07(火) 00:20:13.44
よく見たらオーマトントンになってるじゃねえか。
そりゃ見つからんわw
830デフォルトの名無しさん:2014/01/07(火) 00:39:58.02
ほんとだ、オートマトンにみえたw
831デフォルトの名無しさん:2014/01/07(火) 01:24:28.39
話は変わるけど最近playstationでgame object oriented lispなるものを知った
クラッシュバンディクーに使われたらしいけどこれの詳細知ってる人いる?
832デフォルトの名無しさん:2014/01/07(火) 12:21:00.19
833デフォルトの名無しさん:2014/01/07(火) 16:29:39.07
834デフォルトの名無しさん:2014/01/07(火) 16:58:29.71
こういう所にlispが使われてるの見てるとワクワクする
日本人はやらないのかな
835デフォルトの名無しさん:2014/01/07(火) 23:49:01.33
アドベンチャーゲーム向けの物を作って一作のみだったのかな?
日本だと外にだしてれば商用レベルだった社内ツールが結構埋れてそう。
http://jp.franz.com/base/seminar/2005-11-18/SeminarNov2005-Abe.pdf
836デフォルトの名無しさん:2014/01/08(水) 00:58:29.57
>>835
マザー2のツール群って、もしかして、岩田社長!?
837デフォルトの名無しさん:2014/01/08(水) 07:50:41.92
Thinking Forthを読んでるけど、Lispの長所と区別がつかないなw
GCがなくて、より危険性が高い事くらいか?
文法が追加できて、高級から低級まで扱えて、自由の度合が高くて、
部品に分割しやすくて、柔軟な変更が簡単で、ソースが即座に実行できて、
計画しながら実装できるとか。
他の言語はプログラマを檻に入れて猛獣が外、
Forthは猛獣が檻に入ってプログラマは外で自由という挿絵にワロタ。
Forth自体の知識はさほど必要ないし、Lisperが読んでも参考になると思う。
838デフォルトの名無しさん:2014/01/08(水) 07:59:35.01
日本語化プロジェクトが上の方に引っかかったけど死んどるんかいな
839デフォルトの名無しさん:2014/01/08(水) 08:32:37.19
英語版読んでるから知らない。
言語を作るための言語とか、Application Oriented Languageを作るとか、ボトムアップとか、
プロトタイプを素早く作ってそこから安全にしたり効率化したり修正してプロダクトが出来るとかも出て来た。
アセンブラが標準っぽいのは差かな。
840デフォルトの名無しさん:2014/01/08(水) 18:14:05.34
SCHEMEで陶芸家(中三女子)みたいなポジションの人っていうと誰だろう。
841デフォルトの名無しさん:2014/01/08(水) 18:17:11.77
つまらない
却下
842デフォルトの名無しさん:2014/01/08(水) 18:28:47.46
「みたいな」っていうのが曖昧すぎないか?
陶芸家はメタプログラミング(というかconstexpr)を熱狂的に取り上げるパフォーマーだと俺は思ってるが、
お前のいう「みたいな」は陰核の人という意味かもしれないし、畑違いの本職をもっているという意味かもしれなくて、
どうにも応えようがない。
843デフォルトの名無しさん:2014/01/09(木) 17:38:28.60
とりあえずあたまおかしそう(褒め言葉)なTwitterプロフ画像の人、とか
844デフォルトの名無しさん:2014/01/11(土) 01:31:44.97
やっと「Yコンビネータ」を読み終わった。
Lispについてはまったく書いてなかったけど、「コードを書いて顧客と話せ」「早く出してやり直せ」
「数値目標を作って集中しろ」などグレアムのスタートアップ(ベンチャー)論の実際が読めて面白かった。
グレアムのプログラミング言語論の理解には、彼のベンチャー論の理解が必須であるように思えた。
不完全でもとにかく素早くローンチして、ユーザーとの対話で次々と修正していく彼の推奨スタイルには、なるほどLispは最適なのかも。
Yコンビネータ参加企業のLisp使用率も知りたかったけど、技術書ではないから仕方ないと諦めた。
845デフォルトの名無しさん:2014/01/11(土) 06:00:52.59
グレアムの本を読むと感じるなんともイヤな選民意識みたいな臭さってなんなのだろう?
846デフォルトの名無しさん:2014/01/11(土) 06:52:09.56
>>845
できないの、そうできないんだって台詞の後でいまどんなキモチのAAみせられてる気がするからじゃないか?
847デフォルトの名無しさん:2014/01/11(土) 07:19:50.25
トントン
848デフォルトの名無しさん:2014/01/11(土) 07:55:57.93
Language-oriented programming ttp://en.wikipedia.org/wiki/Language-oriented_programming
名前ついてたのか
849デフォルトの名無しさん:2014/01/11(土) 21:42:19.64
Realm of Racket: Learn to Program, One Game at a Time! [ペーパーバック]
http://www.amazon.co.jp/exec/obidos/ASIN/1593274912/
850デフォルトの名無しさん:2014/01/12(日) 07:10:35.91
>>844
おもしろそうだから Kindle で買ってさっきから読み始めた。
まだ第二章までしか読んでないけどおもしろい。
thx
851デフォルトの名無しさん:2014/01/13(月) 10:37:20.99
「普通の奴等の上をいけ」との違いを教えて下され。
852デフォルトの名無しさん:2014/01/13(月) 15:42:14.81
>>845
ユデア人だからさ
853デフォルトの名無しさん:2014/01/14(火) 01:05:57.81
>>851
普段のエッセイと言ってる事は同じだけど、第三者視点で、事例の詳細、関係者の人格、他のパートナーの話などが読める。
プログラミングのエッセイだと思いこんでいたので、変化する的も仕様変更くらいだと思ってたら、ビジネスの分野さえも変化する的だった。
ビジネスのアイデアを悩んで得て、はやめにコード書いて修正して反響聞いて修正して、あるいは全て捨ててやり直し、またアイデアレベルから変更して…、
アメリカのスタートアップの変化の速さと規模は驚異的。短期間でほぼ全て変わるように感じられる。
これだけの変化が必要なら、抽象化機能が高くて後から修正の効く言語にこだわるグレアムが納得できる。
もちろんスタートアップ以外の領域で使えないとは思わないけど、グレアムのプログラミング観と起業論は同時に考える必要がありそう。
854デフォルトの名無しさん:2014/01/14(火) 19:33:37.16
計算機プログラムの構造と解釈 第二版
http://sicp.iijlab.net/fulltext/
855デフォルトの名無しさん:2014/01/14(火) 19:39:58.73
絶版になったんだよなこれ
日本語版でしかも無料で読めるようになる日を待っていたがまさかこんなに早く来るとは
訳も改善されそうだし興奮が止まらないが公開終了とかの心配はしなくて大丈夫かな?
856デフォルトの名無しさん:2014/01/14(火) 20:39:39.31
>John Locke, 人間の理解に関するエッセイ(1690)

もうそろそろこれやめようよ‥‥先人の訳業を引用することは全然恥ではないと思うよ‥‥
857デフォルトの名無しさん:2014/01/15(水) 01:29:53.95
>>853
なるほど有難うございます。
グレアムのドヤ顔が見えてきそうだ。
858デフォルトの名無しさん:2014/01/15(水) 16:13:09.43
>>854
>とりあえずの公開です. 修正中なのでダウンロードはご遠慮ください.
とりあえずwgetした
859はちみつ餃子 ◆8X2XSCHEME :2014/01/15(水) 17:46:14.75
>>858
遠慮しろw
860デフォルトの名無しさん:2014/01/15(水) 17:51:09.51
サーバーに対しては同じGETだから問題無し
861デフォルトの名無しさん:2014/01/15(水) 18:03:31.22
不正アクセス疑惑?
862デフォルトの名無しさん:2014/01/15(水) 18:16:19.17
数人が一気にダウンロードしたところで IIJ のサーバがどうにかなるわけねーだろ。
ショボい図書館の例とかとは比較にならん。

情報が間違ってる (のとか不充分なのとか) 可能性があるから現時点で保存すんのはやめーやということじゃないのか。
あえて今の段階で保存する必要もないだろうに。
863デフォルトの名無しさん:2014/01/15(水) 19:32:38.67
みんなそれくらいわかってて、どこまでボケられるか争ってたのに
無粋な奴だな
864デフォルトの名無しさん:2014/01/15(水) 19:49:04.97
ぬるぽ
865デフォルトの名無しさん:2014/01/15(水) 21:11:31.16
ガッ
866デフォルトの名無しさん:2014/01/15(水) 23:34:57.49
>>853
グラハムの書いている例って、LISPだからできた、みたいなことを強調する例になってるけど、
むしろそのチーム(少人数で、みんなLISP書けるぐらいの勉強家)がすごかっただけじゃね?
という気がする。
同じチームでJavaでもRubyでも同じようにプロジェクト進められたんじゃないだろうか?
867デフォルトの名無しさん:2014/01/16(木) 00:00:18.98
勉強量が同じなら、lispの方が楽だと思う
Cとかをいじくりまわしてると、なんだかんだ言ってコールバックばっかりで、最終的にlispみたいになるから

最初からlispでやれよ、と
868デフォルトの名無しさん:2014/01/16(木) 00:08:13.82
>>866
そういう意見は今までにも出てるけど、明確な結論は出せないと思う。
Java や Ruby に比べてよりよくかどうかはわからないにせよ、少なくとも「出来る」というのは間違いのないことで、
あとは根拠は不確かなりにアピールして実際に使ってもらって実感してもらって、その結果として潮流が出来るものだと思う。
いずれの結論に転ぶにせよまずは使ってもらわないと始まらない。
現時点で少数派な LISP は大袈裟なくらいでいいんだよ。

>>867
これも色々と言われていることだけど Lisper が Lisp だけしかまともに使えないってことはそんなにない。
他の知識を蓄えた上で LISP に至ったから LISP を楽に使えるのかもしれないし、一概には言えないんじゃないのか。

このスレにいる人なら LISP が好きか LISP に利点を見出した人なんだろうけど、
LISP でプログラミング入門した人ってそんなに多くないんじゃないの??
869デフォルトの名無しさん:2014/01/16(木) 00:14:39.30
8bit時代のマイコンでBASIC、マシン語、FORTRAN,PASCAL
そしてLISPの順番でした
870デフォルトの名無しさん:2014/01/16(木) 00:15:57.21
俺は初めて接した言語はリスプだったな。
それから、ベーシック、アッセンブリー言語、C言語とやっていったな
商業ソフトはリスプ以外で書いてきた。
871デフォルトの名無しさん:2014/01/16(木) 00:17:33.22
和田本は、人生で最初に習う計算機言語としてschemeを想定してる気がする
872デフォルトの名無しさん:2014/01/16(木) 01:17:12.96
グレアム先生もSICP推しだけど、最初に覚えたのはBasicだからね。
873デフォルトの名無しさん:2014/01/16(木) 01:24:43.64
偏見がない日本人もアメリカ留学で出会ってユダヤ人と韓国人が嫌いになる例って多いみたい(自分調べ)
874デフォルトの名無しさん:2014/01/16(木) 02:18:43.68
サンプル数は?
875デフォルトの名無しさん:2014/01/16(木) 02:25:03.80
アメリカに行ったら、日本人はユダヤ人だと思われててびびった記憶がある
876デフォルトの名無しさん:2014/01/16(木) 06:06:34.00
ViaWeb開始は1995年。Cは89、C++は標準規格なし。javaも出てない。
Perlも5で糞なオブジェクト指向が入ったばかり。PythonですらGCがなくて無名。
そしてViaWebの商売もショップ向けのDSLを書いて動的にサーバーで動かすLisp向け。
時代背景とビジネスの内容から、Common Lispで書くのはかなり有利だったのではないかと。
877デフォルトの名無しさん:2014/01/16(木) 08:17:00.75
逆にCommon Lispを使ったからこそ、Lispに最適な解決方法を思いついたのかも知れない。
言語がプログラマの発想自体を変えるのは事実だしな。だからこそ言語は自由である方が良いのだけど。
878デフォルトの名無しさん:2014/01/16(木) 08:18:46.69
このへんはViaWebの伝記か、実際にライバルを含めて利用した経験がある人が出ないと、はっきりとは言えんな。
879デフォルトの名無しさん:2014/01/16(木) 14:20:32.75
lispは手段じゃなくて目的
880デフォルトの名無しさん:2014/01/16(木) 22:24:05.52
sbcl用に書いたものをclispで動かしてみたら遅すぎてびっくりした
やっぱりある程度効率の良いコードを心掛けたほうがいいのかな
881デフォルトの名無しさん:2014/01/16(木) 23:36:18.25
lispは目的じゃなくて思想
882デフォルトの名無しさん:2014/01/17(金) 00:29:54.47
lispは思想じゃなくて道
883デフォルトの名無しさん:2014/01/17(金) 01:25:45.14
lispは道じゃなくて宗教
884デフォルトの名無しさん:2014/01/17(金) 02:49:42.93
全にして無
885デフォルトの名無しさん:2014/01/17(金) 10:05:37.16
Norvigのスタイルガイドにもあるし、ある程度は大事でしょ。
886デフォルトの名無しさん:2014/01/17(金) 12:20:59.43
syntax-caseって規格に入れるには複雑すぎるってのが問題で、
仕組み自体はそんなに悪くないよね?
887デフォルトの名無しさん:2014/01/17(金) 12:58:17.17
>>882
でもTAOのコンセプトのひとつはLISPらしさを前面に押し出さないことって有るぞ。
http://www.nue.org/nue/tao/bitao/tao-lisp.html
888デフォルトの名無しさん:2014/01/17(金) 13:01:48.01
define-macroの何が不満なんですか?
889デフォルトの名無しさん:2014/01/17(金) 15:52:10.64
単純な場合で言えばこんなのかな。

(define count-number 0)

(define-macro (count-increment)
`(set! count-number (+ 1 count-number)))

(let ((count-number 100))
(count-increment))

(display count-number)

やっぱり衝突を回避する方法がないと困る。
CLでグローバル変数に耳当てする習慣があるのは、
グローバル変数に耳当てするだけじゃなくてローカル変数に耳当てしないこととセットで意味があって、
要するに衝突を避ける運用上のテクニックのひとつということになると思う。
だけどSchemeの場合は関数と変数で名前空間が同じなのでグローバルな関数全部に耳当てするわけにもいかない。

syntax-caseにしてもsyntactic-closureにしてもexplicit-renamingにしてもマクロ定義を慎重にすれば衝突しない。
マクロ定義を上手くやれば大丈夫ってのと、マクロの使用を上手くやる必要があるのとだったら前者の方がよくね?
というのがSchemeの立場だと思う。
890デフォルトの名無しさん:2014/01/17(金) 17:01:56.24
>>889
いまいち syntax-case 他の衛生的マクロについて懐疑的なんだけども
初めて define-macro が微妙だと言われる実例で、少し納得がいった気がする

これって (count-increment) の部分が置き換わるわけだから、
その場所で shadow してしまってる count-number ローカル変数を操作対象にするのは
define-macro としては、ある意味自然だよね (もちろん参照透明性なんて無い)

それでも一瞬、マクロが定義された時点の count-number をリファレンスとして持ってるように
「見え」ちゃったし、本当にそうしたい場合にその手段が無いのは困るだろうな、とは思う

ここからがわからないのだけども、大多数の schemer は、衛生的マクロに対して何を求めてるの?
上記みたいな間違いを減らすための安全性?

自分は、本質を小さく保つのが scheme だと思ってて、そして define-macro は十分に小さくて本質を突いていると思っているのだけども、そこだけが未だに分からない

define-macro があれば他の衛生的マクロは実装できるんだよね?
(それとも gensym 無しではできないの?)

disりたいわけじゃないんだけども、schemer の価値観を知りたい…
891デフォルトの名無しさん:2014/01/17(金) 17:27:05.87
>>890
> define-macro があれば他の衛生的マクロは実装できるんだよね?

出来ない。gensymが有っても出来ない。
Schemeの思想としては仕様の序章にある通り「弱点を除いていく」ということにある。
もしも出来ないことがあるのならその機能を付け加えて出来るようにするのではなく、
出来ない理由を取り除くというのがSchemeの目指すスタイル。

結果的に仕様が本質的であろうと小さかろうとそれはただの現時点での結果でしかないよ。
まだまだ議論中のことがいっぱい有って、現時点でのまとめが仕様として文書になってるだけだから小さいけど、
将来的にはどうなるかはわかんない。 今と同じくらいのままの大きさかもしれないしすごく大きくなるかもしれない。

例えばr7rsのマクロはsyntax-rulesだけだけど、もちろんこれはアナフォリックマクロなどの「出来ないこと」がある。
(アクロバティックなことをすれば不可能ではないけど。)
じゃあ出来るようにするには何を導入すればいいのかってことで explicit-renaming やら syntactic-closure やら
が検討されてるし、結論が出れば追加されて今よりは大きくなると思う。
そういう検討中なものがいっぱいあるんだよ。

近視眼的に機能を追加することで急いで肥大化してしまうことは戒めようという感じではあるけど、
簡潔さや小ささは二次的なものであってあくまで目指しているのは欠点の排除だと思う。

ちょっと「思う」って言いすぎだな。 まぁ、あくまで俺の解釈だから。
892890:2014/01/17(金) 21:57:55.76
ありがとう! 超ありがとう! こういう話が聞きたかった

> 出来ない。gensymが有っても出来ない。
え、そうなの…
単に gensym が美しくないとかで拒否されてるものだと思ってた…

欠点の排除が根底にある、かつ、出来ないことがある、ということなら
みんながこぞって他のマクロシステムを模索している現状に納得

それで、どうして gensym 有っても出来ないのかは、何を調べたら分かりますか?
893デフォルトの名無しさん:2014/01/17(金) 22:56:16.15
894デフォルトの名無しさん:2014/01/17(金) 23:34:19.96
マクロは組み合わせて使ったりもするわけだから、
「こんな変な使い方はしないだろう」と思っていても
自然な組み合わせを展開した結果として複雑で奇妙な使い方になってるということはありえる。
というか、そういう複雑さを隠蔽する手段のひとつがマクロなわけで、
複雑さを隠蔽しきれない伝統的マクロ (define-macro) は存在意義を満足してないことになる。
895デフォルトの名無しさん:2014/01/18(土) 08:01:33.09
伝統的マクロで出来ることを出来なくしただけ・・・
896デフォルトの名無しさん:2014/01/18(土) 10:13:43.02
syntax-case
explicit-renaming
implicit-renaming
syntactic-closure
reverse-syntactic-closure
主要なマクロスシステムといえばこれくらいか。
どれかひとつがあれば他は実装可能で、
伝統的マクロで可能な全てのことも可能であることがわかってる。
能力的に同等なのでどれかを採用するという決め手がなくていまだに決着がついてない。
897デフォルトの名無しさん:2014/01/18(土) 10:27:42.71
scheme にパッケージ導入しても伝統的マクロじゃダメなのかな…?
衛生的マクロは複雑すぎて、本質を見失ってる気がして仕方ない
898デフォルトの名無しさん:2014/01/18(土) 10:48:20.50
CL的な package があれば運用でカバーしやすくなる。
でも問題が完全になくなるわけではない。
scheme は根本的な解決法を求めている。
でも解決法は見つかってない。
899デフォルトの名無しさん:2014/01/18(土) 12:14:34.01
ついこないだ chaton で話題になってたけど、変数の参照に関してもちょっと微妙なところがある。
r5rs/r7rsでは未定義の変数を参照するとエラーということになってる。
逆に言えば参照するまではエラーを出さずに動かしてもよいと解釈するのが妥当だろうと chaton では話してた。
でも、r6rsは未定義の変数参照は構文違反 (syntax-violation) ということになってる。
構文違反ってのはマクロ展開を完了した時点 (実行前) に検出するってことね。
実際に変数を評価するかどうかは実行時にならないと完全な検出は出来ないのに
事前に検出することを規格が要求するのもおかしな話で、
俺は「参照」っていう言葉の意味がぶれてるんじゃないかと思ってる。
まぁ、変数解決のモデルも一通りじゃないってこと。

で、それを踏まえて考えたんだが、
CL風のパッケージは第一級 (実行時に操作可能) だからこのモデルを採用するとなると、
事前に未束縛の検出が出来ないという弱点が生じてしまうんじゃないのか。
900898:2014/01/18(土) 13:39:22.82
chaton と r7rs 読んでないけど。

r5rs でマクロ展開時に未束縛変数を見つけてもエラーにできないのは
次のようなプログラムがあるから。
 (define (a) b) ; ここを評価した時点では b は未束縛
 (define b 10)
 (a) ; 10 を返すはず

r6rs では全定義を読み終わった後に変数参照の意味が決まることになっていて、
動的変数は存在しないので、
評価前に未束縛変数をエラーとして報告することができる。

CL で変数参照っぽいのは
「symbolのslotの参照」と「レキシカル変数の参照」の二種類がある。
未定義の変数参照っぽいのは必ず「symbolのslotの参照」になる。
read 終了時点で既に symbol は存在しているのだから、
評価した時点でエラーが報告されるのは自然な仕様だろう。

なので、CLのpackage風の名前解決だけを導入して、
動的変数を導入しないのであれば、
未束縛の変数の検出はさほど問題ではない気がする。


マクロ展開の話に戻すと、>>898 で言った「運用」は、
例えば「外部に挿入されうる symbol は必ず prefix を付ける」というようなルール。
>>889 の例で言うと
(define-macro (count-increment)
`(set! mypackage-count-number (+ 1 mypackage-count-number)))
のような感じに書き換える。
CL風の名前解決は乱暴に言うと全シンボルに自動的にprefixを付けるようなものなので、
この運用がやりやすくなる。
でも、理論的な正しさを重視する人にしてみれば解決になってない。
901899:2014/01/18(土) 14:25:24.60
いずれにしてもCLスタイルのマクロではマクロ使用時の変数衝突の改善になってないということだね。

それは置くとして、私が主張したかったのは、
「CL風マクロをScheme(r5rs/r7rs)に追加したときに弱点が増える」ということじゃなくて、
「CL風マクロが前提としているようなr5rs/r7rs風の変数解決モデルにはそもそも弱点があるんじゃないの?」
ってこと。
r6rsはトップレベルとその他の <body> の差がほとんどなくて (完全に無いわけではない) 理屈としては簡潔で良いよね。
902899:2014/01/18(土) 14:39:11.74
あ、マクロっていうか今はパッケージの話だった
903デフォルトの名無しさん:2014/01/18(土) 21:55:42.13
>>896
能力が同じことがはっきりしてるならあとは好みの問題じゃないの?
議論して決まるようなものなの?
904デフォルトの名無しさん:2014/01/18(土) 22:16:00.93
誰かの好みは必ずしも別の誰かの好みという訳じゃないんだよ
905デフォルトの名無しさん:2014/01/18(土) 22:41:12.85
>>904
だから決まらないつってるんだけど。
906デフォルトの名無しさん:2014/01/18(土) 22:56:40.51
最近どこかのブログ(ツイッタだったかも?)でマクロの計算量のオーダーに言及したものがあったような気がするんだけど見付からない。
誰かそういうの見た記憶ないか?

実装面での都合を議論み持込むのはあまり筋の良いことじゃないけど、
どれを選んでも同じなら実装に都合が良いに越したことはないと思う。
907デフォルトの名無しさん:2014/01/18(土) 22:57:29.85
scheme のマクロは scheme の枠組みの外にあるっぽいのがなんか気持ち悪い。うまく説明できないけど。
908デフォルトの名無しさん:2014/01/18(土) 23:01:22.90
実装の都合は重要だと思うんだけど。。。
909デフォルトの名無しさん:2014/01/18(土) 23:02:29.71
よく探したらここでちょっとマクロのオーダーに触れてた。
http://stibear.tumblr.com/post/70083580262/scheme
implicit renaming は不利みたいだね。
WG2 Consent Docket には explicit renaming が入ってるとのことなのでこれが本命かな。
910デフォルトの名無しさん:2014/01/18(土) 23:18:47.82
>>907
言いたいことはわかる。 ただのリスト操作で扱えるCLと比べると違和感は感じるかも。
syntax-rules がパターンマッチで置き換える感じは scheme とは別言語みたいだもんな。

R6RS の syntax-rules は「手続きを生成する構文」と明記されててモデルが露骨になってる。
そう、マクロ変換子は別フェイズで動く手続きなのだ。
扱うのがリストではなくて構文オブジェクト (リスト (識別子) に文脈情報がくっついたもの) っていうところが CL と違うけど、
動作モデルを理解すると俺は納得できた。
911デフォルトの名無しさん:2014/01/18(土) 23:23:52.99
>>908
重要だけど、実装の都合に合わせたがために仕様に弱点が生じるようではいけない。
弱点を無くすという目標よりも実装の都合を優先してはいけないってことで、優先順位の問題。
仕様についてはもうどれでもいいやっていうのがわかったから次は実装の都合を考えようってこと。
912デフォルトの名無しさん:2014/01/19(日) 00:06:12.19
syntax-rulesはパターンマッチが嫌い。
あんなミニ言語にする必要がない。
913デフォルトの名無しさん:2014/01/19(日) 00:30:02.98
syntax-rules だけだと問題にならないけど、マクロ展開時に実行時同様の手続きを使えるようにするとフェイズの計算がややこしくなるからなぁ。
R6RS ではマクロ展開の環境と実行時環境を分ける方法論でまとめたけど、 CL はごちゃまぜなんだよね?
syntax-rules はベストな選択ではないよ。 ただ、それ以外の選択をするには議論すべきことが残りすぎているってだけで。
914デフォルトの名無しさん:2014/01/19(日) 08:46:21.29
コロンブスの卵的な上手いアイディアが出てこないものかねぇ。
CL は現実的には完成してる訳で、いつまでも決まらないとそのこと自体がschemeの欠点になってしまう。
915デフォルトの名無しさん:2014/01/19(日) 08:49:54.72
なんだかんだでCLの方が柔軟性があるのがなんとも。
916デフォルトの名無しさん:2014/01/19(日) 09:31:04.73
worse is better ってやつだな。
917デフォルトの名無しさん:2014/01/19(日) 09:44:05.64
>>914
> いつまでも決まらないとそのこと自体がschemeの欠点になってしまう。

R6RS で決まったことを覆しちゃったし、一旦決まっても次がどうなるかわからん。
むしろ決まらないのが scheme のアイデンティティだろ。
918デフォルトの名無しさん:2014/01/19(日) 17:40:18.21
>>917
そんなんだから黒板でやってろって言われちゃうんだけどなー
919デフォルトの名無しさん:2014/01/19(日) 18:06:57.30
the little schemerを注文したんだけど、良い本?
920デフォルトの名無しさん:2014/01/19(日) 18:10:13.80
>>911 みたいな考えが出てしまうのも宜なるかな
921デフォルトの名無しさん:2014/01/19(日) 18:19:32.45
それなりに良い本だけど翻訳出てたような。
922デフォルトの名無しさん:2014/01/19(日) 18:24:35.31
ERマクロで決まるんじゃないの?
SCaだけはやめて欲しい
R6RSはなぜSCaにしてしまったのか
Largeの状況は知らないけど
923デフォルトの名無しさん:2014/01/19(日) 22:03:09.64
scheme みたいな CL (とは呼べないけど) 作ればいいのかな
924デフォルトの名無しさん:2014/01/20(月) 08:37:19.26
Common Lisp を小規模にしたようなものということだと ISLISP があるな。
Scheme の思想である弱点を排除するというのを脇において、
Scheme 風の文法で合理的にしたような LISP っていうと何か有るかな?
925デフォルトの名無しさん:2014/01/20(月) 09:18:44.12
パッケージを分割して使う部分を選べるCLが欲しい。
evalを外せるとかそういうの。現状、配布には巨大すぎて。
ISLISPはコンパイル時にユーザ関数が実行できない糞だとdisられてたような。
926デフォルトの名無しさん:2014/01/20(月) 09:45:33.74
> ISLISPはコンパイル時にユーザ関数が実行できない

それは文面の解釈を間違えているというツッコミも有った。
927デフォルトの名無しさん:2014/01/20(月) 10:34:11.18
>>926
kwsk
928デフォルトの名無しさん:2014/01/20(月) 18:14:17.24
>>924
eulisp
929デフォルトの名無しさん:2014/01/20(月) 18:41:19.29
SKILL もそうじゃね?
930デフォルトの名無しさん:2014/01/20(月) 18:49:02.35
EuLispを見た感じ、マクロ無いよね。
そのかわりオブジェクト指向的機能を綺麗に整理してある感じ。
931デフォルトの名無しさん:2014/01/20(月) 20:12:47.39
マクロなんていらんかったんや。
932890:2014/01/21(火) 01:17:39.49
>>893
ありがとう

マクロシステムにおけるfunarg問題 ってのが、一番しっくりきた
それを踏まえて、funarg問題をレキシカルクロージャが解決したのと同じように環境をくっつけるという意味で
S式+環境 という発想が、やっと理解できた

ところで、先の文書で「変換Eをマクロ展開の度にやるのは重い」みたいなことが書いてあるけど
read する時点で自動的に identifier に変換するみたいなことは、できないのかな?
(処理系作ったことないからわからない)

何となく議論してる土台は分かったけど、implicit renaming 以外は、マクロ書きにくそう…
933デフォルトの名無しさん:2014/01/21(火) 01:42:11.51
>>932
具体的な API は慣れの問題だし、たいていの処理系は複数系統の API を用意すると思う。
implicit renaming でも具体的な API が定まればそれを使ってポータブルに explicit renaming 展開器を書けるので、
それをどこかから持ってくればよいだけの話なので。
Scheme が採用すべき基礎 (プリミティブ) となるモデルはどれかというのが問題なんであって、
使い勝手に関しては使い勝手のよいものを勝手に作ればいいよ。

Scheme の思想は弱点の排除。
使い勝手のよいものがあることよりも使い勝手のよいものを作ろうとしたときにそれが可能であるような仕様を目指してるんだと思う。
934デフォルトの名無しさん:2014/01/22(水) 19:57:06.41
little schemerみたいな問題集形式でマクロを扱った本とかホムペとかってありませんか
935デフォルトの名無しさん:2014/01/22(水) 22:27:20.14
環境はMac OS Xです。schemeの勉強始めようと処理系を一通りインストールしました。

emacsで使い勝手が良いモノで実用になるもを選ぶとRacket、chicken、kawaあたり?

Geiserにchickenを組み込もうとしましたが動作イマイチで素直にslimeに。
KawaはJDK7で使い始めたらJDIが無いと言われた。

結局chickenが大量のeggで勉強も実用も捗るしcとの親和性でメインになりそうです。
936デフォルトの名無しさん:2014/01/22(水) 22:35:36.40
>>931
初期のLISP処理系は構文を追加したかったらソースコードをいじるとか普通だったからマクロみたいな仕組みは考えてなかったみたいよ。
937デフォルトの名無しさん:2014/01/22(水) 23:01:23.17
>>936
ちゃんと設計すればS式変換の工程は分離するだろうし、
言語仕様に含めてなかったとしても実質的にマクロじゃね?
938デフォルトの名無しさん:2014/01/22(水) 23:43:10.93
FEXPRがあればMACROいらなくね?
939デフォルトの名無しさん:2014/01/23(木) 00:14:21.24
性能とのトレードオフがあるだろ。
それを許容できるなら有りだと思う。
940デフォルトの名無しさん:2014/01/23(木) 02:20:28.10
>>930
defsyntaxって構文があるっておにぎりの人がいってた。
941デフォルトの名無しさん:2014/01/23(木) 06:43:49.27
で、で、defsyntaxというこ、構文があ、あるんだな。
942デフォルトの名無しさん:2014/01/23(木) 07:36:16.26
おにぎりちがいww

ttp://blog.8arrow.org/entry/2014/01/22/184258
新しいCommon Lisp方言だと。
943デフォルトの名無しさん:2014/01/23(木) 12:28:59.09
これがプログラミングの神髄だ! ファイナルファンタジーのプログラマーが明かす秘密とLispトークバトル! - UEI shi3zの日記
http://d.hatena.ne.jp/shi3z/20140123/1390429115
リスプマシンが持ち込まれるらしいけれど、だれか行く?
944デフォルトの名無しさん:2014/01/23(木) 12:48:35.12
おにぎりの人といえば最近はリスプライブラリを紹介する企画やってるな。
http://atnd.org/events/46706
これこそまさにリスプコミュニティに足りなかったものだと思う。
企画としてはよいんだけど、俺はコモリスは使わねーし、誰かスキームのライブラリももっと紹介してくれ。
スキームライブラリの紹介記事を書いてるの加藤氏だけじゃねーか。
945デフォルトの名無しさん:2014/01/23(木) 18:28:37.86
主要なSRFIは書くのだろうし、他は処理系依存が多いから難しいんじゃね?
946デフォルトの名無しさん:2014/01/23(木) 19:41:19.29
>>943
スクウェアでLispってShiroさんと関係あるのかな?
FF7とLispの関わりも、よく分からないけど。
947デフォルトの名無しさん:2014/01/23(木) 20:10:00.45
948デフォルトの名無しさん:2014/01/23(木) 20:16:34.84
史郎さんはFFの映画の方の仕事で全体の進行を管理してたっていう話はここに書いてるな。
http://www.ogis-ri.co.jp/otc/hiroba/others/OORing/interview21.html
FF7ではフィールドマップ関連の何かをやってたみたいにどこかで見た記憶がある。
専用に作った開発ツールがLispで出来てたってことじゃないの。
949デフォルトの名無しさん:2014/01/23(木) 22:00:55.47
おにぎりの人の紹介は素晴しいけど、タイトルに何をするライブラリなのかの要約欲しいです。
950デフォルトの名無しさん:2014/01/23(木) 22:57:50.24
scheme の弱点は実はlisp-1 であることだつたりしないのかな
951デフォルトの名無しさん:2014/01/24(金) 00:11:19.79
願望?
952デフォルトの名無しさん:2014/01/24(金) 09:03:46.50
"Technical Issues of Separation in Function Cells and Value Cells" には
確かいくつか Lisp-1 の短所は挙がってた気がするけど。

弱点て言うほどでもないような。
953デフォルトの名無しさん:2014/01/24(金) 11:38:57.29
>>947,948
ありがと。日本語でもっと情報出て来て欲しいな。
というか誰かShiroさんの奴を和訳して欲しいな。
954デフォルトの名無しさん:2014/01/24(金) 16:21:27.24
言いだしっぺの法則を発動!
955デフォルトの名無しさん:2014/01/24(金) 23:23:03.74
>>943
今時Symbolics持ち込まれても困るだけだろうに、でかくて重いし
JUNってファッションメーカーのデザインマシンとか思い出しちゃうくらいいにしえ過ぎる。

;;;キーボードは好きだけどなー、今時のマシンにFranz乗っけた方が使い勝手は良いし、もう古い話とか入らないとおもうんだが。
956デフォルトの名無しさん:2014/01/25(土) 18:19:24.48
>>952
Schemeが弱点を無くすことを目標にするとはいっても
より酷い弱点を潰すために仕方なく選択したことってあると思うんだよな。
957デフォルトの名無しさん:2014/01/25(土) 22:49:55.27
で、どの処理系がSCHEME最強なん?
958デフォルトの名無しさん:2014/01/25(土) 23:04:15.50
Lispマシンのキーボード欲しいな
959デフォルトの名無しさん:2014/01/26(日) 14:26:58.73
俺も欲しい
960デフォルトの名無しさん:2014/01/26(日) 14:39:11.37
腱鞘炎になりそうだから俺はいらん
961デフォルトの名無しさん:2014/01/26(日) 22:48:08.06
>>957
状況によるし、何を重視するかにもよるけど万能なのは Racket や chicken。
962デフォルトの名無しさん:2014/01/26(日) 22:50:53.68
gaucheってもう落ち目?
963デフォルトの名無しさん:2014/01/26(日) 23:12:39.09
(log 1000)
と打つと
6.907755278982137
とかえされるのですが、なぜですか?logの使い方が分かりません。
log10 1000(底が10,真数が1000)は3ではないのですか?
(なぜならlog10 1000=log 10 10^3=3log10 10=3)
964デフォルトの名無しさん:2014/01/26(日) 23:17:25.14
自然対数って知ってるか?
965デフォルトの名無しさん:2014/01/26(日) 23:18:45.07
>>963
底を指定するときには第2引数になる。
指定がないときには自然対数となる。
(log 1000 10)
この順序は数学をやる人には気持ちが悪いと思う。
966デフォルトの名無しさん:2014/01/26(日) 23:20:36.65
scheme の log 底は e だよ
(/ (log 1000) (log 10)) すればええちゃう?
高校で習わなかった?
967デフォルトの名無しさん:2014/01/26(日) 23:24:08.36
>>964 ありがとうございます、常用対数と思い込んでいました

>>965 (log 1000 10)ではエラーがででしまいます

>>966 これは底の変換という認識であっていますか?
968デフォルトの名無しさん:2014/01/26(日) 23:30:05.85
>>966
(/ (log 1000) (log 10))
を実行したら、2.9999999999999996
とかえされたのですが、これは(log 1000),(log 10)を先に計算していることからくるずれでしょうか?
3はどうやったらでるのですか? 
969デフォルトの名無しさん:2014/01/26(日) 23:44:04.67
(define (log10 n) (/ (log (/ 1 n)) (log 0.1)))
970デフォルトの名無しさん:2014/01/27(月) 01:18:04.00
最近chickenの人増えたの?
数ヶ月前にIRCに質問しに行った時に、使ってる日本人は一人しか知らないと言われたけど
処理系の統計欲しいな
971デフォルトの名無しさん:2014/01/27(月) 09:04:24.91
>>967
R5RS の log は底の指定が出来ることを要求されてない。
底が指定できるようになったのは R6RS から。
972デフォルトの名無しさん:2014/01/27(月) 09:30:42.58
>>962
そんなことはない。
Gauche は「綺麗な Perl」とでも呼ぶべき立ち位置。
日常的なスクリプティングにさっと使えて、
そのままある程度まで規模が成長しても実用に足る性能があって、
泥臭い現実を許容する柔軟さもある。
ただ、 Racket などと比較するとユーザー数が少ないし、
その分だけ実績が少ないのは確か。
バグの洗い出しとかトレードオフの見極めとかは
実際に使われる中で磨かれるものなので比較すると相対的な差はどうしても有る。

よくも悪くも Gauche は shiro さんが使うための道具で、
shiro さんの価値判断による実装の選択がある。
決してそれが悪いわけじゃなくて、
多数の意見が入ってどっちつかずのグダグダになるリスクとどっちがマシかってことになるんだけど、
結果的に Gauche は Racket ほどの「万能さ」を得てはいないという話。
973デフォルトの名無しさん:2014/01/27(月) 11:20:19.24
Gaucheはscheme処理系の中で一番こなれてるな。
マニュアルの充実といい、作者が自分で使い込んでるから、かゆい所に手が届く。
他の処理系はカタログスペック的にはあるのに、こなれてないことが多くて、作者自身があまり使ってないように感じる。
Racketはそうでもないけど、あれはまだschemeなのだろうか。
974デフォルトの名無しさん:2014/01/27(月) 11:59:14.33
>>973
Racket は少なくとも R5RS と R6RS はサポートしてるから Scheme だろ。
より正確に言えば Scheme を含む多言語開発環境 (?) かな。
LISP系だけならまだしもALGOLサポートは誰得なんだと思うけど。

> 作者が自分で使い込んでるから、かゆい所に手が届く。

そこなんだよね。
逆に自分の使い方を優先しちゃうことになるから、そこから外れたところにバグが残ってたり、
バグではないにしてもあまり積極的にサポートしなかったりということになる。
そこはオープンソースなんだから必要な奴が貢献すればいいという話ではあるんだけど、
どうせ貢献するならコミュニティ人口の多い方でやろうってなって更に差がついてしまう。
975デフォルトの名無しさん:2014/01/27(月) 20:29:29.23
Androidのアプリケーションってリスプでできんの?
976デフォルトの名無しさん:2014/01/27(月) 21:15:23.17
できる。
977デフォルトの名無しさん:2014/01/27(月) 23:30:24.80
>>975
それを目指してリスプの勉強はじめた
でも、起動が遅いとか、有料言語は高価だとかjavaのようにはいかないらしい
978デフォルトの名無しさん:2014/01/28(火) 00:06:24.58
Gaucheってなんて読むの?
979デフォルトの名無しさん:2014/01/28(火) 00:27:03.31
ガウチョ……じゃなくてゴーシュ
980デフォルトの名無しさん:2014/01/28(火) 04:39:23.76
>>975
Clojureが起動時間さえきにしないなら AndroidでもREPL付きでアプリ作れてワラタ事がある
981デフォルトの名無しさん:2014/01/28(火) 17:58:01.87
982デフォルトの名無しさん:2014/01/28(火) 22:44:34.41
健全マクロは複雑なだけ。
SCHEMEらしくない。
983デフォルトの名無しさん:2014/01/28(火) 23:17:28.28
Schemeのコミュニティとかメーリングリストってあるの?
984デフォルトの名無しさん:2014/01/28(火) 23:35:54.73
985デフォルトの名無しさん:2014/01/29(水) 00:02:19.28
>>982
しつこいやっちゃな。
伝統的マクロは健全なマクロに比べて弱点がある。
はい論破。

お前が健全なマクロを嫌いでもいいがSCHEMEの方針として明記してある内容に反しているのは伝統的マクロの方なんだよ。
伝統的マクロこそ「SCHEMEらしくない」んだ。
986デフォルトの名無しさん:2014/01/29(水) 19:00:19.52
(3p)
俺は t だぜ
987デフォルトの名無しさん:2014/01/29(水) 19:07:18.34
は?
988デフォルトの名無しさん:2014/01/29(水) 23:50:54.92
emacsでschemeを使いたくて、mzschemeをインストールしようとしたんだけど、パッケージが見つからない
aptitude install mzschemeじゃだめだったんだけど、教えてください
989デフォルトの名無しさん:2014/01/30(木) 00:20:24.75
俺は Debian とか使ってないからパッケージ名は知らんけど、
MzScheme の今の名前は Racket になってるのでそれっぽいの探してみて。
名前が変わったのはもうだいぶん前なので各ディストリビューションも追従してるはず。
990デフォルトの名無しさん:2014/01/30(木) 00:39:25.66
Windowsで使ったらメモリがんがん食って落ちる事が多かったが。
今は直ったかな?
991デフォルトの名無しさん:2014/01/30(木) 00:42:22.86
>>990
あれは IDE がメモリ食ってたんじゃなかったっけ。 >>988 は emacs 使うみたいだから問題ないんじゃね。
992デフォルトの名無しさん:2014/01/30(木) 01:01:52.29
racket の make-set!-transformer って R6RS の make-variable-transformer と同じだと思うんだけど、
どうしてわざわざ違う名前で提供してるの? 何か微妙なモデルの違いとかあるの?
993デフォルトの名無しさん:2014/01/30(木) 01:06:12.06
思想の違い。
994 【吉】 !dama 【東電 68.2 %】 :2014/02/01(土) 15:49:02.58
単純なschemeの規格に不健全マクロを実装するのがschemeの醍醐味だろうにのう
995デフォルトの名無しさん:2014/02/01(土) 15:57:07.50
数リストの中身の合計値を求めるmy-sumを作って
(define (my-sum ls)
(if (null? ls)
0
(+ (car ls) (my-sum (cdr ls)))))

ロードしてから(my-sum (123 4 9))と打っても
rocedure application: expected procedure, given: 123; arguments were: 4 9
ってかえってくるんだけどどこが修正箇所なん?
996デフォルトの名無しさん:2014/02/01(土) 16:01:16.86
'(123
997デフォルトの名無しさん:2014/02/01(土) 16:13:22.79
ありがとう!クォーテーションが欠けてたのか
998デフォルトの名無しさん:2014/02/01(土) 16:57:14.38
quote考えた奴は天才だけど
LISPモードにでもしないとエディタの色分けが壊滅するよな
~とか$とかにできんかったのか
999デフォルトの名無しさん:2014/02/01(土) 17:20:33.00
.
1000小倉優子 ◆YUKOH0W58Q :2014/02/01(土) 17:21:07.08
  ∧,,,∧ 
 (  ・∀・) 1000ならジュースでも飲むか
  (    ) 
  し─J 
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。