Lisp Scheme Part36

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
Common Lisp、SchemeをはじめとするLisp族全般のスレです

■前スレ
Lisp Scheme Part35
ttp://toro.2ch.net/test/read.cgi/tech/1348018916/

■テンプレ
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/03/13(水) 19:51:38.49
3デフォルトの名無しさん:2013/03/13(水) 22:23:43.04
おつかlisp
4デフォルトの名無しさん:2013/03/13(水) 23:19:58.29
 
私がこの世界に求める優しさのすべて―
  それがLispなんだと。

あぁ この世界の女性がみんなLisperになったら
  なんてすてきな世界なんだろうと考えました。


レトルトカレーしか作れぬお前がLisperになったところで

   そ れ は L i s p e r で は な い !
5デフォルトの名無しさん:2013/03/13(水) 23:34:09.59
きめえよバカ
そんなんだから女に優しくされないんだよ
6デフォルトの名無しさん:2013/03/14(木) 00:50:25.48
再帰的な女性に優しくされたい
7デフォルトの名無しさん:2013/03/14(木) 01:15:03.02
こうかくとSchemeに否定的に思われるかもしれませんが、普及する言語という
のは、できるプログラマーに好かれるだけでは十分ではなく、そうではないプ
ログラマーにも敷居の低いことは要件なんですよね。逆に言うと圏論や型推論
など、一般のプログラマーには難しい理論を要求する言語というのは普及は難
しいのではないでしょうかね。もちろん完全に隠し込めればいいのでしょうが、
コンパイルエラーやデバッグなどで顔を出す限りはなかなか難しい。というわ
けで頭の良い方々が推奨されるプログラミング言語については、その普及とい
う点では否定的に見ております。なお、アカデミアのプログラミング言語を専
門とする研究者(特に優秀な研究者)が設計した言語が大きく普及しないという
のも、この辺りに遠因があるのではないかと邪推しております。
8デフォルトの名無しさん:2013/03/14(木) 01:32:17.41
>>7
こうかくとまで読んだ
9デフォルトの名無しさん:2013/03/14(木) 02:40:53.89
http://users-cs.au.dk/danvy/sfp12/papers/byrd-holk-friedman-paper-sfp12.pdf

cKanrenって見捨てられてしまうの?
自分のプログラムで使いまくってのだけど
バグとかあっても自力で直さないと誰も直さないのかな
10デフォルトの名無しさん:2013/03/14(木) 04:47:42.42
違和感なくlambdaを書けるようになったんだけど。lispのlambda的にbashのコマンドラインを書くと
i=99 ; history | tail -n ${i} | less ## on bashかな。変数iをhistory-tailとしておくと!英数字
で頭文字から始まる文字列の直前の履歴コマンドを実行するからこっちの方が便利か。例!history-t
lispで表すと((lambda (i) (less (tail :n i (history)))) 99) ;; on lisp で。Linuxってlambda的
なのか、lispが表現力豊かなのか。Linuxはlisp的であるという気づきは、lisp的考える事が好きな
ので嬉しい気づきだ。コマンドラインもlispで考えていいなんて。
あとこれ、地上最強の言語Cで表すとどうなるの?
11デフォルトの名無しさん:2013/03/14(木) 08:04:00.65
Linuxがlisp的?ないないw
12デフォルトの名無しさん:2013/03/14(木) 13:19:21.00
x=1 ; i=19 ; j="~/bm/" ; k="/10MiB.iso" ; time nice -n ${i} xz -d -${x} ${j}${x}${k} ; \
x=3 ; time nice -n ${i} xz -d -${x} ${j}${x}${k} ; \
x=6 ; time nice -n ${i} xz -d -${x} ${j}${x}${k} ; \
x=9 ; time nice -n ${i} xz -d -${x} ${j}${x}${k} ## on bash
13デフォルトの名無しさん:2013/03/14(木) 13:21:29.61
xzのベンチマークなんだけど、lispで無理やり書くと
((lambda (i j k l) (mapcar
(lambda (x) (time (nice :n i (xz -d x
(string-renketsu j (integer->string x) k))))) l))
19 "~/bm/" "/10MiB.iso" '(1 3 6 9)) ;; on lisp
14デフォルトの名無しさん:2013/03/14(木) 13:35:22.32
みたいな感じになる。Cだとi=1, i=3, i=6, i=9の部分は配列を使うのか。

lambdaを使えるようになるとREPLがより便利に感じるし、依存度が増すね。Python2をちょっぴり
かじったんだけど、その時にREPLは便利だと感じていたけど、lispのREPLを使うようになってもう一
15デフォルトの名無しさん:2013/03/14(木) 14:09:48.09
もう一度オナニーして寝た。以上っす。
16デフォルトの名無しさん:2013/03/14(木) 14:15:12.78
段便利になって、lispのlambdaを使えるようになったら10倍便利になった気がする。
lambdaを使った事ない人にlambdaの効用を説明するポイントはワンライナーで書けて楽って事だよね。
wikipediaのlambdaのページを紹介されたら引くわ。

書いて思ったけど、lispは表現力豊かなのか。表現力豊か度で言うと三強はなんなんだろ。
17デフォルトの名無しさん:2013/03/14(木) 14:32:32.22
病人みたいな文章だな。
18デフォルトの名無しさん:2013/03/14(木) 14:36:53.14
lambdaの前にletの使い方を覚えたほうがいいんじゃない?
19デフォルトの名無しさん:2013/03/14(木) 15:52:03.95
>>17
おま、それ言うなよ
20デフォルトの名無しさん:2013/03/14(木) 17:38:57.26
>>6
女性も再帰的に男性に優しくされたいワナ。
優しくしてくれるのは世界でlispだけだと割り切って、女性に再帰的に優しくしてやれ。
>>9
リンク未見。コミットして、手の届く範囲だけメンテすればいいんじゃないの。
>>15
オナニーは最大1日1回まで
>>17
あなたがね
21デフォルトの名無しさん:2013/03/14(木) 17:46:44.15
>>7
プログラミングしたいだけなのに、いきなり大学数学みたいな話になるのが良くないと思う。
個人的には小学校のドリルみたいなのをたくさんやらせるとLispにハマると思うんだけどね。
lispを使わなくなっても高機能電卓としては使ってしまうでしょ。bashで((2 ** 10))みたいな事
できるけど。もっと凝った事ができるのか、不明。表現力の最大限界はどんなもんなんだろ。
22デフォルトの名無しさん:2013/03/14(木) 17:59:58.84
誰もドリル作らないなら私が数年後に作るわ。
>>18-19
let構文使うとタイプ量が多いし、変数は可変でletあたりまでタイプして改変するのが面倒臭い。
ケータイメールで前略ないって起こる人か?
あと>>18-19みたいなのが外部からの新規者を排他的に排除する信者って奴だ。let構文書けるように
なったのにそういう事は気が回らないのか。
信念持って排他しているなら肯定してあげるわ。
23はちみつ餃子 ◆8X2XSCHEME :2013/03/14(木) 18:05:22.31
揶揄とか排他とかいう問題ではなくて文章の意味が捉え難い。
すまんが言いたいことをもうちょっと推敲してから書込んでくれんかな。
24デフォルトの名無しさん:2013/03/14(木) 18:16:29.58
Lisperは排他的だというのはほとんど誤解だろうね。
俺も最初はそう思いこんでたが、よく考えてみると自分の考えが稚拙だっただけで
一人空回りしていたというのがほとんどだった。
25デフォルトの名無しさん:2013/03/14(木) 18:40:00.21
Lisperは排他というより実力不相応の選民意識を持っている感じがするな
世の中で使われるソフトひとつろくに作れないのに
26デフォルトの名無しさん:2013/03/14(木) 19:08:50.27
>>12
ここにいる人はみんなこれぐらい書けますよ
for x in 1 3 6 9; do i=19; j="~/bm/"; k="/10MiB.iso"; time nice -n ${i} xz -d -${x} ${j}${x}${k}; done
もっと頑張りましょう
27デフォルトの名無しさん:2013/03/14(木) 19:20:32.72
LisperはむしろLispなんて誰でもたやすく理解できると思ってる人が多い。
選民意識とは逆だと思う。
彼等に選民意識を感じるとしたらそれはおそらく鏡像ではないかな。
28デフォルトの名無しさん:2013/03/14(木) 19:23:50.16
嫉妬していても自分の能力が上がるわけじゃないのにね
29デフォルトの名無しさん:2013/03/14(木) 19:52:15.31
必要性を感じないものを理解するのは難しいもんだよ
30デフォルトの名無しさん:2013/03/14(木) 19:55:14.16
他言語ユーザーのLispはすごいみたいなおべんちゃらをまともに受けているふしがある
本当にすごいと思っているならLispを使うだろ
31デフォルトの名無しさん:2013/03/14(木) 19:56:14.59
嫉妬と決めつけるのもどうかと思うんだけど。
Lisperとかはプログラミングというものの捉え方がかなり違うから他と話がかみ合わない事があるんだよ。
上下という事ではなく、男女、犬猫くらい違う。
32デフォルトの名無しさん:2013/03/14(木) 20:12:56.71
私はLispを使ったこと無いのですが、あなた方はLispの何がすごいと思いますか?
33デフォルトの名無しさん:2013/03/14(木) 20:13:49.98
かっこいい!
34デフォルトの名無しさん:2013/03/14(木) 20:30:13.40
括弧が多い!
35デフォルトの名無しさん:2013/03/14(木) 20:31:34.76
変人に思われるところ
36デフォルトの名無しさん:2013/03/14(木) 20:33:09.07
世界の料理ショー見てたから!
37デフォルトの名無しさん:2013/03/14(木) 20:34:54.83
()イイネ!
38デフォルトの名無しさん:2013/03/14(木) 20:41:24.19
俺の読んだ話だとポール・グレアムってLispで書かれてるらしいね。
そのLisp処理系はグレアムが実装した。
前のバージョンのグレアムがだ。
信じられるかい?そんなこと。

俺は信じないね。

けどLispならそれに近いことは出来るだろうな。
39デフォルトの名無しさん:2013/03/14(木) 20:45:05.69
しょうもない粘着に費やす時間だけはあるのだな>>29
40デフォルトの名無しさん:2013/03/14(木) 20:50:55.31
おまえらがアニメとか見ている間にいろいろやってるんだよ
41デフォルトの名無しさん:2013/03/14(木) 21:17:33.70
カッコが多くて読みにくくても、簡単に自動整形できるからいいよね
私は納品するときは逆に一行にしてる
42デフォルトの名無しさん:2013/03/14(木) 21:44:30.32
・リスパーにあらずんばプログラマーにあらず
・天はリスパーの上にリスパーを作らず
リスパーの下にリスパーを作らず
・リスパーの道はリスプ
・リスプの起源は韓国

まあ色々な格言があるけど、それくらい凄いってわけだ。
43デフォルトの名無しさん:2013/03/14(木) 21:57:28.21
ぜんっぜん!ぜんっぜんおもしろくないよ!その書き込み!!
44デフォルトの名無しさん:2013/03/14(木) 22:02:38.81
とある大学でFacebookアプリをつくる授業をしたところ
儲かって会社を作る学生が続出したそうな
ビジネスで成功するには特別な才能がなくても大儲けできる
時と場所に居合わせるのが重要
グレアムとダン子飼いはその典型例
グレアムなんて今じゃ新言語ひとつ普及さえることのできない程度の能力
45デフォルトの名無しさん:2013/03/14(木) 22:02:49.21
・カー(車)は左
46デフォルトの名無しさん:2013/03/14(木) 22:07:06.84
そうさ、しかしそのタイミングが見えるのは人生に何度もあることじゃあない。
見えた時にモノに出来なきゃあ、UFOか雪男かrmsを見たと言ってるのと変わりはない。
じゃあモノにするにはどうしたら良いかかって?
まずは世界の料理ショーを欠かさず見ることだHahaha
47デフォルトの名無しさん:2013/03/14(木) 22:08:58.63
タイミングを逃すのは床の下に(略
48デフォルトの名無しさん:2013/03/14(木) 22:11:47.26
一生遊んで暮らせる金があるにもかかわらず
便所の落書き以下の駄文を書いて小銭を稼いでいるのが残念な人
49デフォルトの名無しさん:2013/03/14(木) 22:12:46.86
よし、俺もmixiアプリ作って大儲けするぞ。
50デフォルトの名無しさん:2013/03/14(木) 22:13:40.83
>>よし、俺もmixiアプリ作って大儲けするぞ。
もうmixiの時代は過ぎておる
51デフォルトの名無しさん:2013/03/14(木) 22:18:38.98
いや新言語普及させるってのもタイミングじゃないか?
Javaだって物凄く時間がかかったし金もかかっただろう。
Rubyみたいにはなかなか成功するもんじゃないと思う。

例えばBrainfuckなんてまるで普及してないよな。
おっと例えがおかしいとか言いっこなしだぜHahaha…
52デフォルトの名無しさん:2013/03/14(木) 22:28:27.13
巨匠グレアムは普及する言語は適度に汚いって言ってたな。
53デフォルトの名無しさん:2013/03/14(木) 22:31:40.67
普及した言語は綺麗に直すとみんなが困るんだよ
RubyとかPython程度の小変更ですら移行できないでいるし
54デフォルトの名無しさん:2013/03/14(木) 22:33:36.55
何せ宇宙はLispで書かれてるからな。
凄いっつうかヤバイ。Lispヤバイ。
55デフォルトの名無しさん:2013/03/14(木) 22:41:25.55
宇宙はLispでは書かれていないって証拠があるみたいよ
56デフォルトの名無しさん:2013/03/14(木) 22:41:50.86
汚い方がみんなで四苦八苦して仕事してる様に見せかけられるからな。
俺なんかこの3ヵ月間、客先で運用の立ち会いしたが
9割方お茶飲んでネットやって、お菓子食って、鼻くそほじって、
、、やることなかったからな。
一度、客が全員後ろ向いた瞬間にバグフィックスと機能追加したくらいで。

Lispがエレガント過ぎるせいでそうなっちゃうんだ。
いつか後ろ向いてる間にこそっと乗っ取りしてしまうかもしれない。
あ、こういうのが選民意識に見えるのかゴメン。
鼻くそほじったってのは嘘だから。
57デフォルトの名無しさん:2013/03/14(木) 22:43:10.49
>>55
その証拠はPrologで書かれてるんですね。
58デフォルトの名無しさん:2013/03/14(木) 22:46:05.73
宇宙はハングルで書かれてるに決まってるだろ
59はちみつ餃子 ◆8X2XSCHEME :2013/03/14(木) 22:47:40.30
Worse is Better は焼き直されながらいろんな人が言ってる原則だけど、
一旦普及したならその後でそこそこのところまでは改善されるだろうという期待も込みだからね。

http://chasen.org/~daiti-m/text/worse-is-better-ja.html
60デフォルトの名無しさん:2013/03/14(木) 22:48:11.79
人工知能とヒトモドキと猿のアイちゃんではどれが賢いの?
61デフォルトの名無しさん:2013/03/14(木) 22:49:43.02
UNIXとCは最もよくできたウィルスだとか言ってる人が居たな。
62デフォルトの名無しさん:2013/03/14(木) 22:49:47.75
猿のアイちゃん
63デフォルトの名無しさん:2013/03/14(木) 22:53:09.47
>>55
> 宇宙はLispでは書かれていないって証拠があるみたいよ
神様がそうやってlisperに不安定な感じにしているのよ
64はちみつ餃子 ◆8X2XSCHEME :2013/03/14(木) 22:55:00.67
65デフォルトの名無しさん:2013/03/14(木) 23:00:50.01
戸外が「Perl5はもう殆どCLみたいだかんね」とか言ってたが、それってグレアム理論で言えば(略
66デフォルトの名無しさん:2013/03/14(木) 23:04:33.53
近いうちに宇宙はHaskellで書き直されるよ。
67デフォルトの名無しさん:2013/03/14(木) 23:10:48.72
Haskellマシンを作ってから出直してこい
68デフォルトの名無しさん:2013/03/15(金) 00:05:15.38
2ch関数型言語モナードを作るわ
69デフォルトの名無しさん:2013/03/15(金) 00:08:15.66
>>24
(何かの)信者になる奴が排他的であって、(* 2ch lisp)になるとその奴の排他性が強化されるん
じゃない。
>>26
添削だけだとつまらんからネタ投下してよ
>>27
(+ 1 1)がそんなに難しいかな?
(+ 1 1)を選民思想と言われても。
70デフォルトの名無しさん:2013/03/15(金) 00:13:07.36
このスレ見るとやっぱLisperやべーな、と思う
71デフォルトの名無しさん:2013/03/15(金) 00:16:41.23
>>29
実用性の選択肢として入っていない話か。実用性アピールがまだ弱いのかね。
>>30
M社は欠陥OSを売って、みんなに喜ばれているからな。
>>46
深いね
>>50
ICQ関連アプリで儲けてやる
72デフォルトの名無しさん:2013/03/15(金) 00:28:42.95
>>51
Java、時間かかったよね。
超概算でいくらかけたんだろ。
>>60
人工知能の定義は? 拡張性はどこまでありなの? CPUとメモリとインターネットと電気だけだと
ほぼ植物人間だよな。あと賢いの定義は?
73デフォルトの名無しさん:2013/03/15(金) 00:31:17.40
人口知能でセンター試験の問題解けるってマジ?
スピンアトップ・スピンアトップ・スピンスピンスピンとか読んで理解できるの?
74デフォルトの名無しさん:2013/03/15(金) 00:31:23.44
誰だよお前
75デフォルトの名無しさん:2013/03/15(金) 01:14:31.10
病人みたいな文章だとは思ったが、本当に病人だとは思わなかった >>69,71,72
76デフォルトの名無しさん:2013/03/15(金) 14:28:16.56
これは朝鮮人のにおいがするな
77デフォルトの名無しさん:2013/03/15(金) 22:59:03.64
>>73
統計処理すれば問題の文末の語尾だけで解答を特定できそうな気がする
78デフォルトの名無しさん:2013/03/16(土) 07:36:07.28
>>77
2chブラウザにベイジアンフィルタ作るお仕事ですね。
79デフォルトの名無しさん:2013/03/16(土) 07:37:42.79
スピンアトップ・スピンアトップ・スピンスピンスピンってのは
今年のセンター試験国語で出題された問題な
80デフォルトの名無しさん:2013/03/16(土) 07:41:58.54
スパムエッグ・スパムスパム・ベーコンスパム的な
81デフォルトの名無しさん:2013/03/16(土) 09:13:46.26
ユースピンミーラウンドラウンドラウンドラウンド
みたいな。
82デフォルトの名無しさん:2013/03/16(土) 10:42:10.70
初心者に向いているSCHEME処理系のオススメを教えて下さい。
83デフォルトの名無しさん:2013/03/16(土) 11:12:56.53
gaucheでいいでしょ
84デフォルトの名無しさん:2013/03/16(土) 13:54:52.16
Racketってどうなん
85デフォルトの名無しさん:2013/03/16(土) 14:06:00.67
Schemeとの微妙な違いが初心者向きでない
ドキュメントを読む時間のない人にはお勧めでない
86デフォルトの名無しさん:2013/03/16(土) 14:11:28.08
微妙な違いが必要になった時点で初心者卒業だから問題ない
87はちみつ餃子 ◆8X2XSCHEME :2013/03/16(土) 16:36:19.74
Racket も RnRS モードなら互換性が問題になることは無いと思う。
Windows 用のインストーラがあるし、IDE が含まれているので、これだけ入れれば始められるというところは初心者には楽。
機能が雑多に詰め込まれてるのは人によって評価が分かれるかも。
多機能とも言えるし、似たような機能が重複してて美しくないとも言える。
ドキュメントが英語なのは人によってはハードル高いかもしれない。
88デフォルトの名無しさん:2013/03/16(土) 18:09:37.26
新生活も始まるし、ついでに具体的に聞いておく。
>>85の1行目の言い分も分かるけど、>>82のかなりあいまいだけど憶測する用途だと>>83に同意。
で、gaucheで環境は何が鉄板なの?
>>85の用途の具体って何? 2行目の具体は? >>85の言いたい最低限読むべきドキュメントは
何? 推奨で読むべきドキュメントは何?
89デフォルトの名無しさん:2013/03/16(土) 18:13:53.08
急患さんでーす
90デフォルトの名無しさん:2013/03/16(土) 18:18:03.14
来年の3月ぐらい入っての最初の>>82の類の質問には処理系と環境とドキュメントの3つの値を返す
べきだよね。値の数が多めに返ってくる分には無視すればいいわけだし。
質問者側も環境の具体と明確になっている用途を明記すべき。
91デフォルトの名無しさん:2013/03/16(土) 18:25:03.35
>>89
> 急患さんでーす
>>89は病人なのか。面倒くさいなあ。
青春18きっぷ時期だから被災地に行って、一皮剥いて来てよ。来週中にヤフオクで売りさばけば、
使用した回数分減らした額のほぼ定価で売れる。
92デフォルトの名無しさん:2013/03/16(土) 18:45:04.33
>>91
被災地の人をなんだと思ってるんですかね(迫真)
93デフォルトの名無しさん:2013/03/16(土) 18:46:31.05
津波は天罰。我欲を洗い流せ。
94デフォルトの名無しさん:2013/03/16(土) 19:02:54.56
日本語がよくわからないなら英語で書いてもいいのよと提案してみるテスト

要するに「初心者向けの処理系といっても色々あるから目的を書けカス」
「互換性がーとかドキュメントがーとかいうならもっと具体的に書け池沼が」
とかそういうことが言いたいのか?
95デフォルトの名無しさん:2013/03/17(日) 03:57:55.36
そもそも互換性が問題になるほど使い込なしていれば初心者じゃないような気がする
それとも、初心者でも互換性が問題になることがあるのだろうか
96デフォルトの名無しさん:2013/03/17(日) 06:41:07.28
チョンの正体はレプタリアン
97デフォルトの名無しさん:2013/03/17(日) 07:43:14.98
>>96
そんな格好いい物じゃねぇだろw(括弧いい?)
98デフォルトの名無しさん:2013/03/17(日) 11:51:49.75
最近暖かくなってきたし括弧脱がないとなあ
99デフォルトの名無しさん:2013/03/17(日) 13:44:48.79
結局consの実装はどうするのが正しいんだ
structでなくてunionというのがわからん
100はちみつ餃子 ◆8X2XSCHEME :2013/03/17(日) 15:42:38.42
Lisp が括弧を脱いだら何になるの?
101はちみつ餃子 ◆8X2XSCHEME :2013/03/17(日) 16:24:49.94
>>99
だいたいは自前でビット操作してると思う。
C の規格で未定義の部分に踏込むことになるけど、
Union ではビットタグのレイアウトをコントロールできないので。
102デフォルトの名無しさん:2013/03/17(日) 23:24:18.42
>>100
M式かPythonじゃね?
103はちみつ餃子 ◆8X2XSCHEME :2013/03/17(日) 23:30:12.62
どうでもいいけど、この小説に括弧と書いて「カツコ」と読む名前のキャラが出てきた。
http://ncode.syosetu.com/n7632b/
104デフォルトの名無しさん:2013/03/18(月) 00:15:47.27
>>88
これって典型的な時間のない人だな
有益なことに費やす時間のない人
105デフォルトの名無しさん:2013/03/18(月) 00:35:39.07
>>104
だね。この人、自分の何がおかしいのか全然分からないんだろうな
106デフォルトの名無しさん:2013/03/18(月) 15:19:04.19
2ちゃんねるのダメ系の板にしばらくいたことがありますが、ダメになる傾向って確かにあって一つしかないですね
何もしないことです 怠惰や失敗への恐れや他人への迷惑への懸念、大元の理由は様々ですが
あそこにいる人たちの共通点は何もしてこなかった事に尽きます
107デフォルトの名無しさん:2013/03/18(月) 17:37:51.14
>>103
何話?
108デフォルトの名無しさん:2013/03/18(月) 19:28:14.76
>>103
はちみつ餃子たんから小説家になろうのリンクが出るとはおもわなんだw
109はちみつ餃子 ◆8X2XSCHEME :2013/03/18(月) 19:35:49.17
>>107
カツコは第38話に登場。 漢字で括弧と書く話は第225話。
110デフォルトの名無しさん:2013/03/19(火) 04:39:33.07
Racketは実用しようとすると微妙にいろいろたりない
スクライブはtexの代わりになるかと思ったらテーブルが描けないとか

Gaucheってその辺どうなの?
111はちみつ餃子 ◆8X2XSCHEME :2013/03/19(火) 07:38:07.44
その辺ってどの辺?
Gauche 自体にはドキュメントの記述をサポートする機能は特に無いぞ。
言語処理系に何もかも含めてしまうというような気持はないらしくて、
例えば gauche-install も wget, configure, make を呼出すだけの薄いラッパーだったりする。
(小さいファイルひとつで構成されるような Pure Scheme のライブラリでも
configure から呼出してしまうのは大袈裟だからなんとかしたいとどこかで書いてはいたが。)
開発環境全体の面倒を見るタイプの Racket と比較すれば Racket の方が多機能だよ。

そこから話題はちょっとそれるが、
Gauche で書かれたテキストプロセッサってことなら tex-modoki というのがある。
https://github.com/k16shikano/tex-modoki
出力は html だけだし、そんなに高機能でもないけど。
あくまで TeX のモドキという位置付け。

執筆と組版のサポートということならこんなのもある。
https://github.com/yuumi3/GaucheMinDTP
WiLiKi を拡張したシステムを使って執筆して wkihtmltopdf で pdf を生成する。
レンダリングは wkihtmltopdf に丸投げ。
112はちみつ餃子 ◆8X2XSCHEME :2013/03/19(火) 22:06:26.35
ところで最近は Sublime Text 2 で Lisp コードを書くための拡張が整備されつつあるようだね。
http://nomnel.net/blog/st2-gauche/
Eclipse の Lisp サポートなどより期待できるのでは?
長らく Emacs 系か Vi 系の二択だった Lisp 開発環境に新たな勢力が現れて喜ばしい。
113デフォルトの名無しさん:2013/03/19(火) 22:16:52.70
lisp使う人からすれば、Eclipseみたいな統合環境はかえって使いづらいのではなかろうか
特に頻繁にマウス操作しなければならない点がイライラする
114デフォルトの名無しさん:2013/03/20(水) 00:09:50.96
S式と入力装置とかえらい遠いよなそれ。よく言われてるけどいつも思う
115はちみつ餃子 ◆8X2XSCHEME :2013/03/20(水) 09:23:16.09
GUI というか GUI な実行環境と統合されたものが過去にはあったみたいだけど。
http://practical-scheme.net/wiliki/wiliki.cgi?Lisp%3A%E3%82%88%E3%81%8F%E3%81%82%E3%82%8B%E8%AA%A4%E8%A7%A3#H-1m6dvbw
SmallTalk 風に実行環境全部が統合されてたからうまくいってたのかな。
116デフォルトの名無しさん:2013/03/20(水) 23:08:34.40
>>112
(・∀・)イイネ!!
117デフォルトの名無しさん:2013/03/20(水) 23:33:04.65
smalltalkもsqueqkレベルまでGUIに特化すれば触ろうかという気にもなるけど、中途半端にGUIそろえてもらっても困る
確実にマウス触るの嫌ななってるわ

画面に没頭してキーボードだけ叩いて脳のクロックが極限までアップしてるときにに、マウスに手を伸ばすと意識が途切れるのが分かる
118デフォルトの名無しさん:2013/03/20(水) 23:58:03.38
マウスはともかく、eclipse の機能の豊富さはたいしたものだよね。明らかに並のプログラマーをパワーアップさせてくれる。
119デフォルトの名無しさん:2013/03/21(木) 00:57:29.50
Emacs24.3ではcl-lib.elが標準で付いてくるらしい。

逆にCommon LispによるEmacs Lispの実装があれば
今までのelisp資産を生かしたままに現代的なLispの開発がしやすくなるのに。
120はちみつ餃子 ◆8X2XSCHEME :2013/03/21(木) 07:34:10.12
Emacs Lisp と言えば、 Guile2 が Emacs Lisp をサポートっていうのは何かの布石なのだろうか。
121デフォルトの名無しさん:2013/03/21(木) 12:17:08.17
GNUってUNIXをベースに開発言語をCとLispにしたものを作る
ってのがコンセプトだったと記憶してるんだけど。
ストールマンが生きてる間に完成するのかな。
122デフォルトの名無しさん:2013/03/21(木) 12:47:28.04
ちゃうやろ
123デフォルトの名無しさん:2013/03/21(木) 13:47:11.67
GNU宣言(GNU Manifesto 1993年改訂)− 日本語版 −
GNUは、Unixのプログラムを実行できるようにするつもりだが、Unixとは同一
のものにはならない。(略)おそらく最終的には、いくつかのLispプログラム
と通常のUnixプログラムが1つの画面を共有できるようなLispベースのウィン
ドウ・システムを作る予定である。システム・プログラミング言語としては、
C言語とLispの両方が使用可能になるだろう
http://www.gnu.org/japan/manifesto-1993j-plain.html
124デフォルトの名無しさん:2013/03/21(木) 15:00:25.82
1993年か
古いな
今だったらC++とPythonかJavaScriptだろう
125デフォルトの名無しさん:2013/03/21(木) 15:16:46.42
C++ならまだしもJSはいやずら
126デフォルトの名無しさん:2013/03/21(木) 15:35:19.79
guile上に全てのスクリプト言語を再実装する予定だった。
初期の配布にはAlgol風の言語のparserが含まれていたはず。
127はちみつ餃子 ◆8X2XSCHEME :2013/03/21(木) 15:48:41.85
じゃあ Guile って GNU 的には結構な重要ポジションじゃないの
128デフォルトの名無しさん:2013/03/21(木) 18:19:00.32
ストールマン当時としてはずば抜けたプログラマだったけど
C言語に固執してC++を受け入れず
GCC開発陣を苦しめたり
時代おくれな人になってしまったな
129デフォルトの名無しさん:2013/03/21(木) 18:25:36.58
>>119
>今までのelisp資産
めぼしいのあるか・・?
130はちみつ餃子 ◆8X2XSCHEME :2013/03/21(木) 19:07:36.44
Emacs Lisp で書かれたものの方が Common Lisp で書かれたものより多いくらいじゃないかと思うけど
131デフォルトの名無しさん:2013/03/21(木) 19:41:16.78
>>130
多いかもしれんが, emacs の buffer edit 機能に頼りきってるアプリが多すぎて
CL的に emacs を実装して互換ライブラを誰かが作らないと無理ちゃう?
132デフォルトの名無しさん:2013/03/21(木) 19:48:14.94
BASIC全滅宣言の1993年には蹂躙し放題だっただろうな。
復讐は予測しておくべきだった。
133デフォルトの名無しさん:2013/03/21(木) 20:08:05.99
全滅宣言って何?
134はちみつ餃子 ◆8X2XSCHEME :2013/03/21(木) 22:17:40.16
>>131
xyzzy がほぼ Common Lisp な拡張言語でうまくやってる実績があるわけだから、
Common Lisp ベースなテキストエディタは可能ではあるだろ。
ただ、 Emacs Lisp と共存ってなるとかなり無理はあるよなぁ。
135デフォルトの名無しさん:2013/03/21(木) 22:18:28.57
偉大なるBASIC。それはSmalltalkを初めて記述した言語であり、
あの世界のポール・グレアムが最初に学んだ言語でもある。
136デフォルトの名無しさん:2013/03/21(木) 22:22:09.62
CMU Common Lispには15年は前から、Emacsライクなエディタあるけど全然流行らないよな。
137デフォルトの名無しさん:2013/03/21(木) 22:29:51.30
>>124
1993年は改訂であって、オリジナルは1985年
>>123の部分は特に変わっていないはず
138デフォルトの名無しさん:2013/03/21(木) 22:42:48.26
「emacsの利点マイナスemacsを覚えるコスト」を超えるアドバンテージを提供するlisp系言語の統合開発環境はまだない
139デフォルトの名無しさん:2013/03/21(木) 23:23:15.68
>>136
Likeなだけで使い勝手良いかと言われたらうーむな感じ
LispworksのIDEも微妙
アレグロさんは良いけど個人で買うにはめんどくさすぎる
140デフォルトの名無しさん:2013/03/22(金) 01:06:37.48
guileによるEmacsの実装(死んでる)
ttp://www.mit.edu/~raeburn/guilemacs/

CL+CLIMによるEmacsの実装(死んでる)
ttp://common-lisp.net/project/climacs/

死屍累々www
141デフォルトの名無しさん:2013/03/22(金) 03:30:18.86
DrRacketはデバック機能が便利なので時々使う
142デフォルトの名無しさん:2013/03/23(土) 00:50:02.04
別言語で再実装じゃなくてemacsにもう一つ別言語の処理系を乗せるというのはどうだろう。
143デフォルトの名無しさん:2013/03/23(土) 01:12:44.31
地獄の始まり
144デフォルトの名無しさん:2013/03/23(土) 12:19:03.31
https://github.com/darius/escheme
Elisp で実装された Scheme
145デフォルトの名無しさん:2013/03/23(土) 17:11:10.07
call/ccもないのにschemeとな
146デフォルトの名無しさん:2013/03/26(火) 03:41:27.83
emacsの機能を削っていくだけでも軽くて性能のよいモノができそうだと思うのは私だけでしょうか
147デフォルトの名無しさん:2013/03/26(火) 04:03:29.23
具体的にどの辺の機能がいらないですか?
148デフォルトの名無しさん:2013/03/26(火) 13:36:44.00
ドクター
149デフォルトの名無しさん:2013/03/26(火) 14:25:15.81
>>147
使ってる機能を列挙した方が早いと思う
150デフォルトの名無しさん:2013/03/26(火) 16:09:44.66
思われても困るんだよな。
151デフォルトの名無しさん:2013/03/26(火) 17:10:27.70
そんなとこにしか絡めないのか
152デフォルトの名無しさん:2013/03/26(火) 17:44:36.04
自分の中でぼんやりと形作られていても
その形を指すだけでは他人には伝わらない
153デフォルトの名無しさん:2013/03/26(火) 18:00:29.41
ここまで全部ドクター
154デフォルトの名無しさん:2013/03/26(火) 18:28:56.17
ところがドクターを削っても全く軽くなら無い
155デフォルトの名無しさん:2013/03/26(火) 18:40:01.25
org-modeとかpackageとかいらないな
156デフォルトの名無しさん:2013/03/26(火) 19:25:09.15
org-modeなかったら今の使い方で三割くらい俺割を食うな
大抵のレポートはorg-modeだけで十分書ける。
157デフォルトの名無しさん:2013/03/26(火) 19:45:27.22
emacs の素敵なところは, lisper じゃない人たちが
やたら無駄な努力を費やして *mode を作ってくれることじゃないか?
俺は elisp で世間様に公開できるようなものは作った記憶がない
158デフォルトの名無しさん:2013/03/26(火) 21:21:56.54
emacsのスレで話した方がよいんじゃないのか?
emacs(向けとしか言いようが無い)の機能を削ってlispをよくしたいってことなのかい?
159デフォルトの名無しさん:2013/03/26(火) 21:34:41.60
>>157
プログラミング言語用のモードのこと言ってるの?
160デフォルトの名無しさん:2013/03/26(火) 22:45:51.32
DrSchemeでelisp動くといいなあ
161デフォルトの名無しさん:2013/03/27(水) 03:22:26.66
>>158
lisp用の統合開発環境のことかと
162はちみつ餃子 ◆8X2XSCHEME :2013/03/27(水) 11:36:18.52
どうして Windows 版の Emacs だけ barebin パッケージがあるの?
163デフォルトの名無しさん:2013/03/27(水) 18:44:57.28
Windowsは買った状態で開発環境(gccとmake)が付属してないから
164デフォルトの名無しさん:2013/03/31(日) 13:55:39.35
メモリー1.5GのノートPCでDrRacketのステップラインデバック機能つかったら
ステップ1つ進めるのに3分ぐらい待つ

何か設定でメモリー使用量を減らせないのだろうか
165デフォルトの名無しさん:2013/03/31(日) 14:28:36.78
逆にメモリ使用量を増やせばいいのでは?
166デフォルトの名無しさん:2013/03/31(日) 19:33:47.41
渋谷Lisp Gaucheナイト みたいなイベントってもうないの?
167デフォルトの名無しさん:2013/03/31(日) 20:27:57.76
168デフォルトの名無しさん:2013/03/31(日) 21:53:36.69
渋谷Lispは再始動しそうな感じがなかったっけ?
169デフォルトの名無しさん:2013/03/31(日) 22:03:44.66
ひげ太郎はアメリカに行ったんじゃなかったっけ?
170デフォルトの名無しさん:2013/03/31(日) 22:38:10.73
>>161
それ書くのはLisperでしょ。
171デフォルトの名無しさん:2013/04/01(月) 06:33:01.85
syntax-parameterize
ってどういう意味の構文なのでしょうか
matchマクロを展開したもの眺めてるのですが、ここがわからない
172はちみつ餃子 ◆8X2XSCHEME :2013/04/01(月) 07:58:00.68
ざっと見た感じ、 parameterize をマクロ展開時にやるバージョンってだけのものだと思うが…。
173デフォルトの名無しさん:2013/04/02(火) 08:43:30.83
(begin
1
(when false 2)

は1にならないの?
昔のRacketがそんな感じだった気がしたのだけど
174デフォルトの名無しさん:2013/04/02(火) 09:23:08.10
そういうのは #<void> とか #<undef> とか返す
175デフォルトの名無しさん:2013/04/02(火) 10:31:59.35
176デフォルトの名無しさん:2013/04/02(火) 14:32:05.33
perlじゃないんだから
177はちみつ餃子 ◆8X2XSCHEME :2013/04/02(火) 15:21:59.86
>>173-174
規格としては未定義。
何らかの値が返ってくることを期待したコードを書いちゃダメ。
とは言え、 REPL のことを考えたらクラッシュ上等ってわけにもいかないし、
意味不明な挙動をしても困るので、
未定義を表すオブジェクトを返す実装は多い。

直前の式の評価結果がたまたまスタックに残ってて返ってきてしまうような実装は有り得るけど、
処理系の公式な仕様ってことはまず無いと思われる。
178デフォルトの名無しさん:2013/04/02(火) 22:12:28.60
真面目な処理系は未定義のために #<undef> オブジェクトを返す、って相当間抜けな状況だ
179デフォルトの名無しさん:2013/04/02(火) 22:36:21.58
そもそもundefは定義域から外れたというエラーなんだから返り値というのはおかしい
例外の一部とすべき
180はちみつ餃子 ◆8X2XSCHEME :2013/04/02(火) 23:55:46.86
REPL でちょっと (副作用を期待して返り値がどうでもいい) 式を評価してエラーになるのもウザいじゃん。
181デフォルトの名無しさん:2013/04/03(水) 00:34:15.47
#<undef>は未定義値だろ。
182デフォルトの名無しさん:2013/04/03(水) 01:48:33.28
未定義は、引数が定義域の外にあるという意味なんだから、関数の値として未定義が返ってくるのは納得いかない
逆に、未定義を関数の値域の中の値とするなら、未定義の定義そのものと矛盾するからまた納得いかない
183デフォルトの名無しさん:2013/04/03(水) 01:51:50.28
なので、未定義ではなく未実装にすべき
未定義は例外として関数の値域の中の値とは区別すべき
未実装なら値域のどれかの値を取り得る可能性があるが、未定義は値域の値のどれをも代表しない
184デフォルトの名無しさん:2013/04/03(水) 02:16:15.08
>>183
規格として未定義なんだが。
実装は何を返そうとかまわんよ。
それに依存したコードを書いたら他で動くことが期待できんだけ。
185デフォルトの名無しさん:2013/04/03(水) 05:33:41.09
>>182
>未定義は、引数が定義域の外にあるという意味

の出典を知りたい。
186デフォルトの名無しさん:2013/04/03(水) 08:34:02.82
>>175
>http://www.cs.utah.edu/plt/publications/gpce12-rf.pdf
マクロつきのJavascriptって感じか?
187デフォルトの名無しさん:2013/04/03(水) 10:20:42.08
RnRS的にはundefinedじゃなくてunspecified (未規定) と言った方が正確かな。
188デフォルトの名無しさん:2013/04/03(水) 19:31:30.68
ドメインの外から飛んできたという意味なのか、コドメインの中のモノを出すけどまだ特定できてないだけなのか
189デフォルトの名無しさん:2013/04/03(水) 22:36:40.46
未定義な値や状態を陽に扱わないといけない場合もあります。
その典型例がIEEE 754のNaNやC99のfetestexcept(3)。

処理系やライブラリの実装者としては
できるだけ自分の庭の中で処理したくなるのは当然です。

>>182-183
3-Lispはその辺をもうちょっと厳密にやってました。

>>179
値だろうと例外だろうと、ドメインをリフトしない限り、
特別な値/例外を扱う、つまりドメインに埋め込みでやらざるを得ないです。
190デフォルトの名無しさん:2013/04/05(金) 17:24:15.48
ごく単純な疑問なのですが、Gauche で準引用を試してみたところ

gosh> `(1 ,(append '(+ 2) '(3)) 3)
(1 (+ 2 3) 3)
gosh> `(1 ,(+ 2 3) 3)
(1 5 3)
gosh>

こうなるのですが、仕様的にはどういう説明になるのでしょうか?
個人的にはどちらも (1 5 3) になるべきな気がするのですが……
上の方の (+ 2 3) はリストで下の (+ 2 3) は procedure call
などというのは、概念的に変ではないかと
191デフォルトの名無しさん:2013/04/05(金) 17:30:56.52
(append '(+ 2) '(3))
(+ 2 3)
切り出して考えろよ 結果わかるだろ
192デフォルトの名無しさん:2013/04/05(金) 17:43:38.73
いえ、 `, の組み合わせというのは継続部の評価の実行を意味するものではないのでしょうか?

(eval (append '(+ 2) '(3)) (scheme-report-environment 5)) 

なら結果は5ですよね?
193デフォルトの名無しさん:2013/04/05(金) 18:23:37.94
これとの違いをゆっくり考えてみて。
`(1 ,(eval (append '(+ 2) '(3)) (scheme-report-environment 5)) 3)

それから>>191ももう一度読んでみよう。
194デフォルトの名無しさん:2013/04/05(金) 19:53:27.49
皆さんの言うこともわからないでも無いのですが、下の挙動を見てると
どうにも気色悪いとしか……

gosh> (eval (+ `,(append '(+ 2) '(3)) 1) (scheme-report-environment 5))
*** ERROR: operation + is not defined between 1 and (+ 2 3)
Stack Trace:
_______________________________________
gosh> (eval `,(append '(+ 2) '(3)) (scheme-report-environment 5))
5
gosh>
195デフォルトの名無しさん:2013/04/05(金) 20:00:37.23
>>194
何が分からないでもないの?なぜ自分の思いこみを疑わないの?
196デフォルトの名無しさん:2013/04/05(金) 20:20:23.72
一度 eval されたら、引数自体だけでなく、引数の引数までも全て eval されなければならない、
みたいな謎の信仰を抱えてそう。
197デフォルトの名無しさん:2013/04/05(金) 20:32:21.39
(+ '(+ 2 3) 3)
これはまずいわな。
(+ (+ 2 3) 3)
との違いがわからないんだな。
S式がメタな構造であることがまだざっくりとしか理解できてない。

それから整定数が(eval x) == xであることにもまだ自覚的でないから、
backquoteが展開される時に1と3はquoteされてることにもたぶん気づいてない。

>>196
その逆で自分の気にいるところまで結果を再度evalして欲しいんでしょ?

(list '1 (append '(+ 2) '(3)) '3)の結果が、
(list '1 (+ 2 3) '3)の結果と一緒であって欲しい。
つまり(+ 2 3)をもう一度evalして欲しい。
198デフォルトの名無しさん:2013/04/05(金) 22:45:20.51
実は
(eval '(append '(+ 2) '(3)) (interaction-environment))
を評価すると結果は
(+ 2 3)
になるんだよ すごいね!
これが>>190の一つ目の挙動なんだ
199デフォルトの名無しさん:2013/04/06(土) 07:29:36.07
RacketのC++インターフェイス作ろうみたいな話題がMLで出てるけど
boost.pythonみたいなもの作ろうとかしてるの?
200デフォルトの名無しさん:2013/04/06(土) 10:13:05.30
foreign function interface でなく?
201はちみつ餃子 ◆8X2XSCHEME :2013/04/06(土) 13:07:18.09
へー。 そんな話題が出てるんだ。
C++ は C と違って ABI がややこしいからめんどくさそう。
202デフォルトの名無しさん:2013/04/06(土) 14:59:17.60
>>199
C++ って, 処理系によってとかおなじ処理系によってもバージョン単位で
ABI 違ってたりすることもあるんだけど, C++ そのまま呼ぶわけじゃない
よね?
203デフォルトの名無しさん:2013/04/06(土) 17:25:36.52
バージョンに依存すれば良いじゃない > ABI
Cじゃあるまいし、C++なんてそんなもんですよ
204はちみつ餃子 ◆8X2XSCHEME :2013/04/06(土) 20:26:52.09
gcc と足並みを揃えるのは面倒そうだなぁ。
でも gc が既に結構アーキテクチャ依存っぽいし、今更か。
205デフォルトの名無しさん:2013/04/06(土) 20:46:19.65
http://d.hatena.ne.jp/moriyoshi/touch/20091214/1260779899
Boost.Pythonはこんなものらしい
206デフォルトの名無しさん:2013/04/07(日) 03:06:32.19
schemeをC言語にコンパイルするシステムを作る方向でやればいいと思う
バイナリを作るときはそのC言語のコードをコンパイルするというスタイルで
昔smalltalkでやって完成したから、schemeでもできるはず

schemeの処理系はschemeで表現できるから、これができれば一気に処理系が精錬されるはず
207はちみつ餃子 ◆8X2XSCHEME :2013/04/07(日) 03:31:15.44
C を経由する処理系というと gambit, bigloo, chicken, rhizome/pi, stalin くらいか。
他にある?
208デフォルトの名無しさん:2013/04/07(日) 06:41:44.41
Scheme48もブートストラップの部分はSchemeからCへコンパイルする。
もうメンテされてないのまで含めれば、Scheme->CとかHobbit (SCMのコンパイラ)とか、vscmもそうだったかな。
Cを経由する処理系はたくさんあるよ。

ただ、継続の扱いによってCとのインタフェースに違いが出てくるから、単に「C経由してるから
Cから呼ぶのも簡単」というわけにはいかない。
209デフォルトの名無しさん:2013/04/07(日) 06:53:23.11
CやC++で作られたScheme処理系で一番ソース読みやすい単純なものって
どれになるんですか?
210はちみつ餃子 ◆8X2XSCHEME :2013/04/07(日) 09:39:15.66
chibi-scheme じゃないかなぁ。
211デフォルトの名無しさん:2013/04/07(日) 12:42:04.23
tinyScheme
212デフォルトの名無しさん:2013/04/07(日) 13:56:44.16
g++のABIは3.3以前のと3.4以後の2つしかないよ。
今は事実上3.4以降のABI version 2しかないと思っていい。
オプション指定するとABI壊すコードも吐けるけど。-no-exceptionとか。
これはそうしたい環境があるんだからg++としてはサポートせざるを得ない。
213デフォルトの名無しさん:2013/04/07(日) 17:57:18.24
素数夜曲読み始めたが言い本だな
214デフォルトの名無しさん:2013/04/07(日) 18:38:37.40
>>206
> これができれば一気に処理系が精錬されるはず

SmalltalkっていうかSqueakのアレは、アラン・ケイたちがVMを全面的に書き直す必要に
迫られながらも、Cで(書くのはともかく)デバッグはしたくないという状況下での苦肉の策であって
http://www.mars.dti.ne.jp/~umejava/smalltalk/squeak/

処理系を洗練させる目的とは違うような気がする。
215デフォルトの名無しさん:2013/04/07(日) 19:31:27.01
>>214
バカ大学生たちがschemeで作ったscheme処理系をナメてはいけない
216デフォルトの名無しさん:2013/04/07(日) 22:26:27.78
Smalltalkって最初はBASICで実装されたのなw
信じられないような本当の話。
217デフォルトの名無しさん:2013/04/07(日) 23:03:27.27
218デフォルトの名無しさん:2013/04/09(火) 00:00:11.53
http://stackoverflow.com/questions/459323/what-is-the-best-scheme-or-lisp-implementation-for-os-x

こんな曖昧な質問でもコメント沢山つくんだな
面白かったけど
219デフォルトの名無しさん:2013/04/09(火) 01:29:07.61
日本語でおk
220デフォルトの名無しさん:2013/04/09(火) 22:48:13.59
cffiのあるscheme処理系はいろいろあるけど
templateで書かれたC++関数を呼んでくれる処理系ってないのでしょうか

template<typename T>
T f(T x){return x;}

みたいな関数をffiから呼びたい
221デフォルトの名無しさん:2013/04/09(火) 22:54:36.50
単に呼べれば良いなら、extern "C"でラッパー書けば良いんじゃないの。
直接呼びたいとか面倒そうなこと考えてるなら、頑張ってください。
222デフォルトの名無しさん:2013/04/09(火) 23:18:46.59
template<typename T>
T f(T x){return x;}

を一度特殊化した後ならどの処理系も読める

f<int>(x)

とか。
223デフォルトの名無しさん:2013/04/09(火) 23:23:38.04
224はちみつ餃子 ◆8X2XSCHEME :2013/04/10(水) 00:33:26.78
>>220
無茶だよ。 その時点では実体化されてないんだから。
225デフォルトの名無しさん:2013/04/10(水) 09:55:42.07
chickenのeasyffiにtemplateの記述があるけど
例は実体化した関数だけだから駄目な予感が
226デフォルトの名無しさん:2013/04/14(日) 20:10:13.86
iPhoneアプリ. Windowsアプリを売って生き残れ Ver 1.7 リンク数61
Http://qr. net/kh4y
227デフォルトの名無しさん:2013/04/15(月) 05:29:24.06
正規表現にグローバルマッチがないorz
228デフォルトの名無しさん:2013/04/16(火) 02:06:42.71
欲しい機能がないと愚痴をこぼしたときに、探し方が悪いと返答されるところまでなら納得できるが、
ないなら勝手に作れという返答まで出てくるのでLISPコミュニティは嫌いです
229デフォルトの名無しさん:2013/04/16(火) 02:12:11.27
どうぞどうぞ
230デフォルトの名無しさん:2013/04/16(火) 02:35:04.19
変人多いしね
231デフォルトの名無しさん:2013/04/16(火) 11:31:36.75
他の言語と違って、欲しい人が欲しいものを、言語実装者と同じレベルで作り込める環境があるからねぇ。
欲しいものが無いなら作ればいいんじゃね?
232はちみつ餃子 ◆8X2XSCHEME :2013/04/16(火) 11:33:24.73
よく探せば間違いなくあるってのなら探し方が悪いと返答するかもしれんが、
実際に無いことが多いんだもの。
233デフォルトの名無しさん:2013/04/16(火) 13:47:27.16
探している本人にはそりゃ必要に思えるんだろうけどねー
1スレ埋めるより作った方が早くない?って感じで
234デフォルトの名無しさん:2013/04/16(火) 14:57:40.52
主要言語がライブラリでサポートしてる機能がないとがっかりする
ライブラリ設計時に他の言語を参考にしてないのだろうか
235デフォルトの名無しさん:2013/04/16(火) 21:28:10.65
主要言語は企業からの払い下げが多いかったり、企業が保守のコアメンバに入ってるから比べるのは酷
LISPは軍事研究から大学の研究室に解放するときに、ライブラリのいくつかを機密にしてしまったため、ライブラリのいくつかは一から作り直すハメになったという
236デフォルトの名無しさん:2013/04/16(火) 22:39:40.01
マッカーシーさんもびっくりやなw
237はちみつ餃子 ◆8X2XSCHEME :2013/04/16(火) 23:42:14.98
>>235
それどこ情報よー
238はちみつ餃子 ◆8X2XSCHEME :2013/04/17(水) 12:36:20.31
Gauche のリポジトリがとうとう github に移行した。
http://sourceforge.net/mailarchive/message.php?msg_id=30733568
239デフォルトの名無しさん:2013/04/17(水) 18:59:20.53
Gaucheって以前スレがあったような気がするんですが無くなったんですか?
覚え違いかな
240デフォルトの名無しさん:2013/04/17(水) 21:58:47.79
land of lisp日本語版買って5月連休1週間集中で読もうと思ってるんですけど、文章量的にざっくりした話で、

・到底無理
・図表が多いのでページ数の割りに楽勝
・主要部分だけなら十分いける

くらいの感じで言うとしたらどんなもんでしょう>持ってる方
241デフォルトの名無しさん:2013/04/17(水) 22:38:00.31
今まで読んだLispの本は?
どんなLispプログラムを書いたことがある?
242デフォルトの名無しさん:2013/04/17(水) 22:56:09.49
一日でイナフ
243デフォルトの名無しさん:2013/04/17(水) 23:17:13.87
>>240
読めるよ。でも、手を動かしながら読まないともつたいないよ。
244240:2013/04/17(水) 23:17:57.67
lisp経験皆無、elispを設定の必要に駆られてコピペした位です。
HaskellとMLで関数型言語に対する壁はないのですが…
245デフォルトの名無しさん:2013/04/18(木) 08:52:22.59
>>240

その本、おもしろい 大笑いしてしまう
電車の中で読むときは注意
246デフォルトの名無しさん:2013/04/18(木) 11:04:24.23
俺って「数学ガール」とか「スモールコンパイラの制作で学ぶプログラムのしくみ」を読むとイライラしちゃうような人なんだよな。
真面目に考えてるところに余計な物語が入り込んできて思考をぶつ切りに中断させられるのがウザくて仕方がない。
Land of Lisp にも同じ匂いを感じるので今のところ敬遠してるんだけど、
物語部分と説明部分がうまく馴染んで滑らかに繋っているなら楽しく読めそうだとも思っているので、
そういう観点で見てどう思うかを尋きたい。
247デフォルトの名無しさん:2013/04/18(木) 14:34:26.36
わかる。
248デフォルトの名無しさん:2013/04/18(木) 14:35:21.78
>>246
ギャル絵が無いから大丈夫かも?
無いよね?
249デフォルトの名無しさん:2013/04/18(木) 14:47:16.21
ttp://nostarch.com/download/Lisp08.pdf

Wow 絵しかないページがある
250デフォルトの名無しさん:2013/04/18(木) 15:25:48.93
小説的にストーリー挟むというより、ジョークの小ネタを挟んでくる感じ。
251デフォルトの名無しさん:2013/04/18(木) 16:53:34.25
Lispあるあるとかプログラミングあるあるとか挟んでくるのかwうっとーしーな
252デフォルトの名無しさん:2013/04/18(木) 18:15:04.85
お前のほうが鬱陶しいわ。人に相談することかよ。
253デフォルトの名無しさん:2013/04/18(木) 21:31:55.46
俺って〜な人なんです

という文の破壊力ってなんなの
254デフォルトの名無しさん:2013/04/18(木) 22:01:31.03
let over lambdaのweb版ってどうなってるんですか
いま見たら404 not foundになってて悲しいんですけど
ttp://letoverlambda.com/
http://web.archive.org/web/*/http://letoverlambda.com/
255はちみつ餃子 ◆8X2XSCHEME :2013/04/20(土) 01:18:42.87
R7RS の投票が始まったらしいよ。
256デフォルトの名無しさん:2013/04/20(土) 02:19:12.04
なんか前にも投票してなかったっけ?
どういう手続きで決めることになってんのかわからん。
257デフォルトの名無しさん:2013/04/20(土) 02:20:42.67
R5RSにどんな問題があるのか未だに分からない
258デフォルトの名無しさん:2013/04/20(土) 10:35:13.26
どんどん仕様が大きくなるのが悲しい
むしろシェイプアップしていくべき
259デフォルトの名無しさん:2013/04/20(土) 11:26:19.45
そもそもR5RSで困ってる人っているの?
260デフォルトの名無しさん:2013/04/20(土) 17:24:24.21
>>259

規格としてモジュールがなかったんで困った。
GaucheがデファクトスタンダードだったけどR7RSで決まったら
それが以後、維持されていってほしい。
261はちみつ餃子 ◆8X2XSCHEME :2013/04/20(土) 17:41:20.55
モジュールシステムの規格化は Scheme 使いにとっての悲願である。

あと、マクロを生成するマクロで省略子を使えない場面があるのも問題視されてた。
R6RS では (... ...) と書いて展開を抑制する (要はエスケープ) ことで解決してたんだけど、
R7RS (ドラフト) では省略子として使う識別子を別途与える方式。
どちらがいいかは色々意見はあると思うが、 R6RS からあえて変えるほどのものとは思えないんだよな。
262デフォルトの名無しさん:2013/04/20(土) 22:26:17.07
typed racketがちゃんと動くようになったらHaskell勉強する意味がなくなる気がする
263デフォルトの名無しさん:2013/04/20(土) 23:06:41.44
むしろ、マクロを仕様から外してほしいと思うのは俺だけか
264デフォルトの名無しさん:2013/04/20(土) 23:16:10.34
http://wiki.call-cc.org/programming-for-performance
ここに書いてあるように型を手動指定したんだけど
全然高速にならない
型を手動指定したら高速になるような例って
どんなのあるのでしょうか
265デフォルトの名無しさん:2013/04/20(土) 23:26:41.23
型ヒントつけて高速になるのはプリミティブの数値計算くらいじゃね?
266デフォルトの名無しさん:2013/04/21(日) 00:07:47.44
Typed Racket も素の Racket より遅かったような
267デフォルトの名無しさん:2013/04/21(日) 00:19:21.39
uniform-vectorで行列計算でもすればいいのでしょうか?
268デフォルトの名無しさん:2013/04/21(日) 04:02:06.43
実装を見ると変数のタグを見て適用する関数を振り分けてる
そこをソースコードで指示してショートカットしても大して速度向上するとは思わない

携帯端末とかで空間効率を上げるというなら分かるが
269デフォルトの名無しさん:2013/04/22(月) 01:10:44.95
つまり最近のScheme処理系は、かなり効率的な型推論を組み込んでしまってるわけですね
270はちみつ餃子 ◆8X2XSCHEME :2013/04/22(月) 01:14:11.09
全然つまってない件
271デフォルトの名無しさん:2013/04/22(月) 01:35:06.40
typed racketでやってるのは、型ヒント付けてプリミティブにしたり型チェックしないようにするのではなく、検査で遅くなるような処理だったと思う。
272はちみつ餃子 ◆8X2XSCHEME :2013/04/22(月) 17:31:56.46
assertion の一種って感じ?
273デフォルトの名無しさん:2013/04/23(火) 00:38:49.84
typed racket 勉強したら型付きλ計算分かるようになる?
274はちみつ餃子 ◆8X2XSCHEME :2013/04/23(火) 00:47:00.96
ならない。
275デフォルトの名無しさん:2013/04/23(火) 01:07:44.19
えーそうなの?
276デフォルトの名無しさん:2013/04/23(火) 02:47:24.85
理論的には、λ計算は基本的に全部型付きλ計算なんだけどね
277デフォルトの名無しさん:2013/04/24(水) 01:32:53.05
電子計算機出来る前から型という概念があったの?
278デフォルトの名無しさん:2013/04/24(水) 02:38:26.86
あったの
279デフォルトの名無しさん:2013/04/24(水) 10:25:48.21
http://docs.racket-lang.org/ts-guide/optimization.html
あら、typed racketにもオプティマイザー(デフォルト:オン)があって潜在的に速くなるって書いてある。
ということは実装がまだまだなのかな?

http://docs.racket-lang.org/ts-guide/more.html
#lang typed/racket で切り替えるせいか、アノテーションもスッキリしてるね。
280デフォルトの名無しさん:2013/04/24(水) 11:23:19.10
>>277
素朴集合論により導入された矛盾を除去するためのタイプ理論。
281デフォルトの名無しさん:2013/04/24(水) 12:55:55.44
>>278 >>280
トン。やっぱプログラミングは数学やん‥
282デフォルトの名無しさん:2013/04/24(水) 12:57:58.47
現実世界も数学ですやん
283デフォルトの名無しさん:2013/04/24(水) 13:23:07.09
>>276
型のない(というか静的に付けられない)λ計算だってあるやん。
Y コンビネータが有名だけど。
284デフォルトの名無しさん:2013/04/24(水) 13:46:01.21
>>282
せやせや。俺もおまいも数学やがな。
285デフォルトの名無しさん:2013/04/24(水) 14:04:44.63
>>281
プログラミングと数学とが繋がってるのは必然。
計算不可能な領域が有ることが判った後、では計算可能な領域とはどの辺り
なのかを検証しようとした結果、今のアーキテクチャが出来たんだから。
286デフォルトの名無しさん:2013/04/24(水) 15:15:09.80
文系高卒の俺には理解できない領域だ…
287デフォルトの名無しさん:2013/04/24(水) 22:21:16.18
結局、型はドメインのことだからな…

むしろ、計算機プログラムの分野が null を発明したせいで型の厳密性があやふやになった
288デフォルトの名無しさん:2013/04/25(木) 01:01:18.35
SD5月号の推薦図書特集で、英語の講義ビデオや輪講参加できるならSICP、独習するなら素数夜曲(付録パート)というオススメがあったよ。
289デフォルトの名無しさん:2013/04/25(木) 01:17:07.97
独習ならそうだねえ
説教の部分だけざっと読んで感動してすませるのもよし
290デフォルトの名無しさん:2013/04/25(木) 02:07:19.90
SICPはscheme処理系自作への入門が載ってる点が優れている
291デフォルトの名無しさん:2013/04/25(木) 07:22:43.82
>>287
もっとあやふやなチャーチ数の方が古いです。
292デフォルトの名無しさん:2013/04/25(木) 07:54:30.36
場違いな話で1人盛り上がられてもね
293デフォルトの名無しさん:2013/04/25(木) 09:51:27.43
場違いかもしれないけど、SICPの講義ビデオの字幕つきってありますか?
294デフォルトの名無しさん:2013/04/25(木) 09:52:11.67
あ、日本語のです。
295デフォルトの名無しさん:2013/04/25(木) 10:39:19.90
これからMITの授業受けようってやつに字幕要るかね。
296デフォルトの名無しさん:2013/04/25(木) 10:43:00.73
youtubeに突っ込めば字幕付くんじゃない?
英語は結構いい感じになってきているし。
297デフォルトの名無しさん:2013/04/25(木) 19:46:23.55
>>290
あの本そんな面白そうな話が載っているのか。原書買って積んでたけど、開いてみるか…
298デフォルトの名無しさん:2013/04/25(木) 20:00:03.10
「自作への入門」っていうわかりやすい感じには書いてないけどなw
299デフォルトの名無しさん:2013/04/25(木) 21:10:18.23
>>298
ジェネリック型や amb や 遅延ストリームの説明するついでに実装しちゃったという感じ
300デフォルトの名無しさん:2013/04/25(木) 22:29:21.80
わたしたちのオーム社さんに Lisp in Small Pieces の邦訳版を出してもらおう
新版出てるの出てないのって話もあったような
301デフォルトの名無しさん:2013/04/25(木) 22:57:00.62
>>295
これからMITの授業受けようという人が講義ビデオを見るのかね?
302デフォルトの名無しさん:2013/04/26(金) 03:05:40.06
ambの引数に他で定義したlistもってくるにはどうすればいいの?
(amb-collect
(let* ((y (list
(list 1 2 3 4 5 11)
(list 6 7 8 9 10 4)))
(x (list
;(apply (cons amb (list-ref y 0)))
;(apply (cons amb (list-ref y 01))
(amb ,@(list-ref y 0))
(amb ,@(list-ref y 1))
)) )
(if (not (= (+ (list-ref x 0) (list-ref x 1) ) 15))
(amb)
(list (list-ref x 0) (list-ref x 1)
))))
303デフォルトの名無しさん:2013/04/26(金) 03:30:39.94
SICPの和田訳を簡単な日本語に訳した本が欲しい
304デフォルトの名無しさん:2013/04/26(金) 04:59:48.06
現代語訳 SICP w
305デフォルトの名無しさん:2013/04/26(金) 10:10:20.15
Land of Lispじゃだめなん?
306デフォルトの名無しさん:2013/04/26(金) 18:37:52.96
>>291
チャーチ数とかラムダ式使った諸々、あとコンビネータとかも、定義通り計算すれば言ってる事は分かるけど、
こんなもんどうやって思いついたんだろうとか思ってしまう。

経緯とか元ネタとかアイデアの素とか分かる本とかサイトとかないですか。
lispっぽく無いからここでその手の話は止した方がいい?
307デフォルトの名無しさん:2013/04/26(金) 18:59:01.89
悪くないと思うけど。他に適当なスレもないし。

基本的にどの本もカッチリ理論を攻めていて、緩〜く解説した本ってあまりないんだよね。
308デフォルトの名無しさん:2013/04/26(金) 19:02:50.93
>>307
学習者の理解レベルに応じて、記述範囲・詳細度が動的に変化するテキストを作るんだ!
これくらいやって始めて、電子書籍と呼べる。
309デフォルトの名無しさん:2013/04/26(金) 19:10:44.55
家族砲の「説明書」かよw
310デフォルトの名無しさん:2013/04/26(金) 21:26:53.57
実用性重視で理論を軽視して設計したC言語には理論を求めないのに、理論を重視して設計したlispには理論を求める不思議
311デフォルトの名無しさん:2013/04/26(金) 21:54:27.72
>>306
もともとチャーチ先生は数学基礎論屋だったから、
数学の基礎付けをするための自分の論理体系を作ろうとしていた。
ところが自分の研究室の学生だったクリーネとロッサーが
その体型に矛盾を見つけてしまったので、
この体系を詳細に調べて、深く掘り下げいこうとした。
その過程で体系の一部分だったラムダ計算だけで充分なことが分かった。
クリーネと共著の論文でチャーチ数を発表してる。

クリーネ自身が「ゲーデルを語る」で話しているが、
チャーチの研究室はチャーチの体系のみ徹底して追及する研究室だったとのこと。
だからこんなに掘り下げることが出来たのだと思う。
上の本にその辺の経緯は少しだけ書いてある。
"The Collected Works of Alonzo Church"は、まだ頓挫中みたい。
312デフォルトの名無しさん:2013/04/26(金) 22:56:09.73
「チャーチ研て、自分とこの理論がバグってたらしいよ」 (ヒソヒソ
「やだ、恥かしぃ」
「講義ではあんな偉そうに喋ってたのにね」 (クスクス
313デフォルトの名無しさん:2013/04/27(土) 00:21:07.92
>>303
それ欲しい。
314デフォルトの名無しさん:2013/04/27(土) 02:52:29.48
SICP読みなおした
読んで身に付いたこと

機械語やC言語を経由しないプログラミング入門
型にタグ付ける方法
scheme処理系の枠組の実装
ambの実装
遅延評価の実装
和田語
315デフォルトの名無しさん:2013/04/27(土) 03:09:45.96
>>310
lisp=期待される子、ってことでは?
316デフォルトの名無しさん:2013/04/27(土) 11:19:21.20
3 = S(S(S 0)) なので、
3 = λf.λx.(f(f(f x))) S 0
ラムダ計算の変換のみでf^nの部分は生み出せないが、
モデル上では帰納的定義によって構築しておくことが可能。
既に集合論上での自然数の構築の例が複数あるから、;;ノイマン版 ∅, {∅}, {∅,{∅}},...
n = λf.λx.(f(f(f x))) としてしまうことを思いついたのだと思う。
本人の回顧によると、若干のチャーチ先生との議論、後はクリーネがほぼ独力で考えたらしいが、
プリンストンでノイマン、ゲーデルのセミナーを聴いていたので、
素の公理上で自然数のモデルを再帰的に構築する手法は体験済みだった。
http://en.wikipedia.org/wiki/Peano_axioms#Set-theoretic_models
http://en.wikipedia.org/wiki/Set-theoretic_definition_of_natural_numbers
317デフォルトの名無しさん:2013/04/27(土) 12:15:17.10
マクロが便利だからLisp使ってるだけで
深く考えたことはないな
318デフォルトの名無しさん:2013/04/27(土) 14:24:35.50
>>316

ペアノの公理系とチャーチ数は同じものだと考えていいのかい?
319デフォルトの名無しさん:2013/04/27(土) 14:41:23.87
ペアノの公理系(の自然数の部分):ラムダ計算:チャーチ数 = 仕様:アーキテクチャ:実装
アーキテクチャに合わせた実装。

> ;;ノイマン版 懼, {懼}, {懼,{懼}},...

これが集合論というアーキテクチャに合わせたバージョン。
succも集合演算で定義できる。
320デフォルトの名無しさん:2013/04/27(土) 14:43:56.42
文字化けしちゃった...

ついでに
< n = λf.λx.^n x)
と修正
321デフォルトの名無しさん:2013/04/27(土) 14:48:57.31
S式版
(), (()), (() (())), (() (()) (() (())),...
(defun succ (n) (append n (list n)))
322306:2013/04/27(土) 16:53:54.93
>>316
興味深い話題の紹介ありがとう。
なんか数学の世界のマシン語みたいなところだ、喩えが上手くないかもしれないけど。
また面白そうな世界へのドアを一つ開いてしまったか。。
323デフォルトの名無しさん:2013/04/27(土) 17:42:03.22
誰だ!このドア開けっ放しにしたのは
ちゃんと閉じれ。
324デフォルトの名無しさん:2013/04/27(土) 20:54:21.62
     ___
   /|∧_∧|
   ||. (・ω・´| >>1乙!
   ||oと.  U|
   || |(__)J|
   ||/彡 ̄ ガチャ
     ___
   /|∧_∧|
   ||. (     | じゃ、そういうことで
   ||oと.   |
   || |(__)J|
   ||/彡 ̄ ガチャ

      ___
     |    |
     |   o.|
     |    |
     |    |
      ̄ ̄ バタン
325デフォルトの名無しさん:2013/04/27(土) 23:14:33.36
lambda ランバダ
326デフォルトの名無しさん:2013/04/27(土) 23:47:15.62
ここらへんの話って、素数夜曲読めばもうちょっと詳しく書いてあるのかな。
327デフォルトの名無しさん:2013/04/27(土) 23:56:58.30
嫌がらせのように詳しく書いてあるよ
328デフォルトの名無しさん:2013/04/28(日) 08:54:25.53
>>319
SICPだとモデルって言ってるね。
計算モデルとか関数適用の置換モデルとか。
>>316のwikipediaでも。
通常、実装はさらに一枚現実側の層だから。
けどこの板は実装と言った方が分かりやすそう。
329デフォルトの名無しさん:2013/04/28(日) 11:22:38.62
なんかオライリーからそのへんをプログラマ向けに解説する本が出るってよ(洋書)。
ttp://shop.oreilly.com/product/0636920025481.do

言語がRubyだが。
330デフォルトの名無しさん:2013/04/28(日) 12:02:46.18
これも気になってるんだが。

Realm of Racket: Learn to Program, One Game at a Time!
http://www.amazon.com/Realm-Racket-Learn-Program-Game/dp/1593274912/
Publication Date: July 5, 2013
331デフォルトの名無しさん:2013/04/28(日) 14:21:41.83
"more fun and accessible with its collection of comics and games"

lolやlearn you a haskell的なノリか
332デフォルトの名無しさん:2013/04/29(月) 15:34:51.06
(define amb-as-function lst)
(amb lst)
)
がうまく動かないのですがマクロを関数化するのってlambdaで囲むだけじゃだめなんですか?
333はちみつ餃子 ◆8X2XSCHEME :2013/04/29(月) 16:36:45.06
なんか括弧の対応が出来てないけど、そういう話ではなくて?
334デフォルトの名無しさん:2013/04/30(火) 00:58:58.08
>>302
を要約すると
>>332

(define (amb-as-function lst)
(apply (cons amb lst))
)
もうまくいかない
335デフォルトの名無しさん:2013/05/01(水) 01:26:25.20
革命機ヴルヴルヴァイヴ
336デフォルトの名無しさん:2013/05/01(水) 09:51:03.21
>>334
apply の引数たりなくない?
337はちみつ餃子 ◆8X2XSCHEME :2013/05/04(土) 21:44:17.02
Gauche に R7RS モード入った。
338デフォルトの名無しさん:2013/05/07(火) 09:00:38.05
R7RS ってのはいいものなのかい?
339はちみつ餃子 ◆8X2XSCHEME :2013/05/07(火) 10:34:47.49
考え方や用途によるんじゃないの。

モジールやレコードを入れるのは順当な感じかな。
syntax-rules の改良は当然必要だからアリだろ。
バイトベクタや例外も細かいことは srfi でいいとしても最低限度の共通化は必要だろうし、こんなもんだろ。

datum labels はコアに入れる必要あるかなぁ? ちょっと微妙な気がする。

#true / #false は余計なマネって感じがしないでもない。
340デフォルトの名無しさん:2013/05/07(火) 10:56:10.78
#数字=に比べたら天国のよう。> datum labels
http://ars.els-cdn.com/content/image/1-s2.0-S1570866708000026-gr003.jpg
こういうの記述したいから。図やコードをschemeで生成するために。
341デフォルトの名無しさん:2013/05/08(水) 19:01:12.44
はちみつSchemeもR7RSになるんか?
342デフォルトの名無しさん:2013/05/10(金) 04:54:24.69
何か特徴のあるscheme処理系つくったら
それだけで、こんな感じで論文にできるものなの?
http://ci.nii.ac.jp/naid/110002726064
本当にそれでいいなら論文量産できそうな予感するのだけど
英語だとどんな雑誌あるんだろ
343はちみつ餃子 ◆8X2XSCHEME :2013/05/10(金) 07:55:04.15
査読の厳しさは色々だよ。
掲載されても、それがどう評価されるかは別な話。
344デフォルトの名無しさん:2013/05/10(金) 10:23:58.59 ID:eEqt3xxD!
「Scheme処理系作りました」ってとこ自体には全く新規性はない。論文にするとすれば、
何かアイディアがあって、その有効性を示す例のひとつとしてScheme処理系を作って見ました、
というパターンだね。あるいは、制約のあるシステムを考えて、そこでそれなりに使えるプログラムが
動くことを示す例としてScheme処理系を載せてみました、とか。
345デフォルトの名無しさん:2013/05/10(金) 10:45:52.34
>>342
実装系ではSoftware Practice and ExperienceとTOPLAS。
後は雑誌ではないがLisp系のconferenceのproceedings。
346デフォルトの名無しさん:2013/05/10(金) 11:03:29.06
>>342
処理系作ったというところより、
Javaと連携可能なScheme処理系で一級継続をうまく実装する方法を考えてやってみたらできたよ
継続持ってない他の言語でも実装可能かもね
というところが主題なんじゃないかなあ…
ちゃんと読んでないから違ってたらすまん
347デフォルトの名無しさん:2013/05/11(土) 21:55:56.91
あいかわず IRC の (freenode の) #Lisp_Scheme チャンネルは過疎ってるなぁ。
348デフォルトの名無しさん:2013/05/16(木) 11:52:51.45
過疎が普通の姿だろ
2ちゃんのlispスレとD言語スレの勢いは異常。普通と思ってはいけない
349デフォルトの名無しさん:2013/05/16(木) 16:42:55.05
Chaton Gauche には人が結構いるよね
350はちみつ餃子 ◆8X2XSCHEME :2013/05/22(水) 03:08:49.75
異世界系でなくてロウファンタジーでもない (超常的なことがおこらない) タイプの作品が話題にあまりのぼらないよね。
投稿されてる作品の割合で異世界系が多いからしょうがないんだろうけど。
351はちみつ餃子 ◆8X2XSCHEME :2013/05/22(水) 03:09:45.79
あ、ごめん。 誤爆った。 小説家になろうスレに投稿しようとしたんだけど。
352デフォルトの名無しさん:2013/05/22(水) 03:11:22.31
リリカルLispかと思った。
353はちみつ餃子 ◆8X2XSCHEME :2013/05/22(水) 03:32:57.05
リリカル Lisp の人、 NScripter で Lisp 処理系を作るのはまだしも、
ニコニコスクリプトでも Lisp 処理系作ってたりして、
良い意味で変な方向にガッツがあるよね。

そのガッツで教育用ソフトを作ろうと思ってくれたことには感謝したい。
なんだかんだで Lisp が使われないのは今 Lisp で動いているものが少なくて
Lisp に触れる機会が少ないというのは理由のひとつだと思うんだわ。
入口になりうるものがあれば紹介しやすいし、
ただ話題性があるものを提供するだけでも結構効果ありそう。

あとアリサかわいい。
354デフォルトの名無しさん:2013/05/22(水) 03:47:41.49
すずかは?
355デフォルトの名無しさん:2013/05/22(水) 03:59:07.28
_〆(・_・。) はちみつ氏はアリサ派と…
356デフォルトの名無しさん:2013/05/22(水) 07:42:46.36
アリサ・ローウェルか
357デフォルトの名無しさん:2013/05/22(水) 07:57:30.57
アルトッサ イルトッサ キルルルハー
358デフォルトの名無しさん:2013/05/22(水) 15:45:57.40
観月ありさ
359デフォルトの名無しさん:2013/05/22(水) 15:46:26.87
クダー(・∀・)モエッ
360はちみつ餃子 ◆8X2XSCHEME :2013/05/22(水) 16:08:56.81
>>356
リリカルLispをあらためて確認してみたがアリサ・バニングスとは名乗ってないね。
でも鮫島が「バニングス家の科学力は、世界一ぃぃぃぃぃぃぃ――」と言っている場面があるのでリリカルLispのアリサはアリサ・バニングスと断定していいと思う。

>>354
アリサの輝きの前には他の全てはかすんでしまうんです。
361はちみつ餃子 ◆8X2XSCHEME :2013/05/23(木) 08:15:40.79
ところで R7RS の投票が終わったみたいだね。
大半が賛成のようだ。

http://lists.scheme-reports.org/pipermail/scheme-reports/2013-May/003486.html
362デフォルトの名無しさん:2013/05/23(木) 10:01:22.42
>>356 >>360
とらハの設定がなのはシリーズでどこまで有効なのかよくわかりません。
アリサ・ローウェルは完全に無かったことになったものとしていいと思いますが、
すずかが吸血鬼であるという設定はなのはシリーズでも残っているのでしょうか?

強いて言えばコミックス版でのすずかはかなりの身体能力があるように描写されているのですが、
吸血鬼としての能力という設定なのか、単に優秀ということになっているのかはっきりしません。

なのはシリーズの作中で全く触れられないので設定でどうなっていようと関係ないと言えば関係ないのですが、
二次創作小説では吸血鬼であるという設定にしているものも少なからずあり、たいへん気になっています。

このあたりの設定についてわかる関係者の発言などの情報をお持ちの方がいればぜひ教えて下さい。

それと、恭也と美由希は高町士郎&桃子の実子ではなく養子であるという設定はなのはシリーズでも公式にされているのでしょうか?
もしそうでないとするなら桃子の年齢から言って色々とアレなので二次創作をするにしても考慮しないとならないので…。
363デフォルトの名無しさん:2013/05/23(木) 10:41:29.46
スレ違い
364デフォルトの名無しさん:2013/05/23(木) 11:13:42.17
これだから大きなお友達は
365デフォルトの名無しさん:2013/05/24(金) 11:03:55.05
ゆゆS式
366デフォルトの名無しさん:2013/05/24(金) 11:20:34.03
>ゆゆS式
情報処理部

今日のまとめ

Yコンビネーター:難しい
367デフォルトの名無しさん:2013/05/24(金) 11:43:37.58
sicp妖精s

「これ何て言ってるのかな」

「なんじゃこりゃあ。condの括弧の数あわねえし」
368デフォルトの名無しさん:2013/05/24(金) 12:59:31.96
なに括弧のサイズさえ合えばいいのさ。 lispなんてそんなものさ
369デフォルトの名無しさん:2013/05/24(金) 15:29:30.85
マッコイ乙
370はちみつ餃子 ◆8X2XSCHEME :2013/05/26(日) 13:36:54.53
タコぷーの日本語訳って中古でも一万円もするのかよ。
http://www.bookoffonline.co.jp/old/0012734475
「定価より \290 おトク!」って…。
まぁ値段分の価値はあると思うが…。
371デフォルトの名無しさん:2013/05/26(日) 14:03:00.70
お前、入荷お知らせメール受け取ったな
372デフォルトの名無しさん:2013/05/26(日) 14:23:00.24
タコぷーって何かと思ったらTACPか。
373デフォルトの名無しさん:2013/05/26(日) 14:24:28.15
英語版でいいじゃない、って言おうと思ったけど洋書の値上がりっぷりが凄い。
円が2割くらい価値を失ったから仕方ないのだが。
374デフォルトの名無しさん:2013/05/26(日) 15:33:53.18
円高の時に買っとけばよかったじゃん
375デフォルトの名無しさん:2013/05/26(日) 19:12:28.50
そろそろ電気代上げるかな
376デフォルトの名無しさん:2013/05/26(日) 19:21:21.98
国民は馬鹿だから、社員の福利厚生充実しまくりで赤字ですとか言って、いいように上げてくるよ。

lispと関係ないけど
377はちみつ餃子 ◆8X2XSCHEME :2013/05/27(月) 00:24:49.97
>>376
燃料の高騰があるからどちらにせよ上がるよ。
燃料費を反映させるのは政府に申請する必要もなかったはずだし。
378デフォルトの名無しさん:2013/05/27(月) 00:36:12.89
板違いの話題はせめてS式で語ってくれないか。
379デフォルトの名無しさん:2013/05/27(月) 05:06:05.00
スティール兄貴の愛読していた本だよね?>たこぷー
380はちみつ餃子 ◆8X2XSCHEME :2013/05/27(月) 06:48:41.03
愛読っつーか辞書みたいなもんだから、通して読む種類の本じゃねーよってクヌース自身は考えてるみたいだけどな。
381デフォルトの名無しさん:2013/05/28(火) 20:26:10.42
>>380
ファインマン先生は, 幼少の頃からブリタニカを通読し大量に書き込みもしてていたらしいが
382デフォルトの名無しさん:2013/05/28(火) 20:58:47.17
>>381
ご冗談でしょう?
383デフォルトの名無しさん:2013/05/31(金) 00:45:26.90
ノイマン級は歴史書44冊諳んじたとか、計算機より速いとか逸話がある。
384デフォルトの名無しさん:2013/05/31(金) 15:44:51.13
初期のコンピュータ技師「ほんとうに読んだ本を暗記しているのかい?
じゃあ試しに...えーと、二都物語...の最初を暗唱してくれ」
ノイマン「(スラスラスラ)」
ノイマン「(スラスラスラ)」
ノイマン「(スラスラスラ)」
技師「わかった。もういい...」
385デフォルトの名無しさん:2013/05/31(金) 15:55:25.62
ノイマンさんコンピュータなんか作らないで自分の脳みその研究すればえかったんちゃうの?
386デフォルトの名無しさん:2013/05/31(金) 16:08:12.60
自分の脳味噌を研究に使うよう遺言。
387デフォルトの名無しさん:2013/05/31(金) 17:47:47.13
>>386 そんな遺言してないと思ったけど。
ていうか晩年の脳はだいぶヤバかったんじゃないか、フォン・ノイマンは。

脳が保存されたのはアインシュタイン。遺言に従って、ではなかったと思った。
388デフォルトの名無しさん:2013/06/02(日) 11:00:07.02
アラン・ケイが考えるオブジェクト指向プログラミング - @katzchang.contexts
http://d.hatena.ne.jp/katzchang/20080807/p2
>私が考えるOOPはメッセージング、状態処理のローカルでの保有・保護・隠蔽、そして全ての物に対する強力な遅延束縛、これだけだ。
>これはSmalltalkとLISPだけが実現できている。他のシステムでも可能かもしれないが、私は知らない。
2003年の発言だけど、今でもsmalltalkとlispだけなんだろうか
389デフォルトの名無しさん:2013/06/02(日) 15:59:10.66
LL系ならたいがいできてるんじゃないかね

「メッセージング」の定義にもよるが
390デフォルトの名無しさん:2013/06/02(日) 16:27:50.40
全ての物に対する強力な遅延束縛というのは何だろう
391デフォルトの名無しさん:2013/06/03(月) 01:04:55.79
全てにおいて実行時束縛が可能なこと。
実行時に型を変更できない言語は駄目。
392デフォルトの名無しさん:2013/06/03(月) 23:34:13.37
Land of Lisp読了
印象に残ったのはHaskell 共和国こえぇぇぇ
393デフォルトの名無しさん:2013/06/04(火) 00:47:29.76
>>392
>Haskell 共和国こえぇぇぇ
kwsk
394デフォルトの名無しさん:2013/06/04(火) 07:58:15.40
副作用使用罪を犯した罪で逮捕
395デフォルトの名無しさん:2013/06/04(火) 08:12:54.26
マクロ濫用罪ってのはどうよ?
396デフォルトの名無しさん:2013/06/04(火) 12:29:19.69
Lisp使用罪で死刑
397デフォルトの名無しさん:2013/06/04(火) 18:58:41.90
>>395
あのオフサイドルール自体がマクロみたいなもんだろ >Haskell
398はちみつ餃子 ◆8X2XSCHEME :2013/06/04(火) 19:31:21.15
Template Haskell もあるでよ。
あれはマクロだろ。
399デフォルトの名無しさん:2013/06/06(木) 15:49:15.48
オフサイドルールのどこがマクロなんだ?
SRFI-49がリーダーマクロっぽく定義されてるとしても、
それはHaskellと関係ないと思うが。
400デフォルトの名無しさん:2013/06/08(土) 02:51:10.80
javaでlispインタプリタ作ってみたんだけど(tak 2 1 0)ですらスタックオーバーフロー起こして困ってる
javaだと素直に実装するとこんなものなのかな
これじゃベンチマークすらできなくて使い物にならない
401デフォルトの名無しさん:2013/06/08(土) 04:09:45.22
Javaで深い再帰をしたいときにはJVMの起動オプションでスタックサイズを指定しないと
402デフォルトの名無しさん:2013/06/08(土) 04:16:06.84
Schemeインタプリタなら素直に実装しようとすると自前でスタックを用意するよな
403はちみつ餃子 ◆8X2XSCHEME :2013/06/08(土) 08:53:18.96
そうしないと TCO が出来ねーっていう話が。
404デフォルトの名無しさん:2013/06/08(土) 09:52:06.82
>>400
> javaだと

なんだってそうだ。
405デフォルトの名無しさん:2013/06/08(土) 12:32:52.81
(tak 2 1 0)
=> (tak (tak 1 1 0) (tak 0 0 2) (tak -1 2 1))
=> (tak 0 2 1)
=> 1

こんだけじゃない?
インタプリタがバグってるか tak の定義が間違ってるのかどっちかだと思うよ。
406400:2013/06/08(土) 13:06:00.39
確かに階乗は800くらいまではスタック溢れしないのにtakが溢れるのはバグかな
自前でスタック用意する方法も考えてみる
ありがとう
407デフォルトの名無しさん:2013/06/08(土) 14:20:12.78
takはスタックが深くならない、というのが利点(資源がしょぼい環境でも走らせられる)の一つだからな
408デフォルトの名無しさん:2013/06/08(土) 14:20:53.19
と思ったがもしかしてtakとtaraiで違うんだっけ?
409デフォルトの名無しさん:2013/06/08(土) 14:33:15.39
jvmには、末尾最適化がないとか。
あと、jvm上の言語実装だとrepl動かすときに -Xms=256m みたいなのがついてる。
そして、scalaやclojureはバイトコード生成するので、その部分をasmで実装してる。
410デフォルトの名無しさん:2013/06/08(土) 15:40:11.88
ENVをJavaのObjectにしておけばtailコールできそうな気がするんだけど駄目なんだろうか?(1関数の大きさが64K以下ってなるだろうけど)
411400:2013/06/08(土) 17:03:38.88
スタックオーバーフローの原因は除算の第一引数に変数を入れるとその変数自体の値が変更されることだった
Javaの名誉のために訂正しとく
412デフォルトの名無しさん:2013/06/08(土) 18:57:18.58
>>400,411
まぁ2chに書くまえにもちつけ!ってことやね。
おつやよー
413デフォルトの名無しさん:2013/06/08(土) 22:00:27.98
バグが出たらまずコンパイラのせいにするのが基本
414デフォルトの名無しさん:2013/06/09(日) 00:05:33.57
>>409
taraiは普通に再帰しても、そもそもネストが深くならないから、末尾最適化は関係ない
415デフォルトの名無しさん:2013/06/09(日) 07:06:22.01
そうか全部taraiのせいにすればいいのか
416デフォルトの名無しさん:2013/06/09(日) 07:48:22.74
taraiが落ちた
417デフォルトの名無しさん:2013/06/09(日) 07:53:27.60
(shimura ushiro ushiro)
418デフォルトの名無しさん:2013/06/09(日) 16:04:47.01
現代魔法かよ!
419デフォルトの名無しさん:2013/06/09(日) 18:56:56.08
420デフォルトの名無しさん:2013/06/09(日) 20:32:05.17
consがどうしたって?
421デフォルトの名無しさん:2013/06/10(月) 17:56:33.72
コンスは韓国起源ニダ!
422デフォルトの名無しさん:2013/06/10(月) 23:07:13.29
konsに変えるニダ!
423デフォルトの名無しさん:2013/06/11(火) 00:20:41.88
cdrねーw
424デフォルトの名無しさん:2013/06/11(火) 00:23:16.76
cdrは百済発祥ニダ
425デフォルトの名無しさん:2013/06/11(火) 01:08:53.51
carは夏王朝発祥アル
426デフォルトの名無しさん:2013/06/11(火) 01:11:25.89
consは東ローマ帝国発祥ぷる
427デフォルトの名無しさん:2013/06/11(火) 06:33:20.71
Lispでパラメタライズって動的スコープにすることなの?
428デフォルトの名無しさん:2013/06/11(火) 06:48:00.04
既存のjavaプログラムを流用しかたかったら
クロージャーが一番いいのだろうけど
Scheme(Racket)のプログラムも流用したいなら
Kawaがいいのだろうか

他にもJavaで書かれたScheme処理系がいくもあるので
どれが一番いいのか
429デフォルトの名無しさん:2013/06/11(火) 07:02:24.49
まあ個人的にはKawaを選ぶけど
いまさらClojureを覚えるのも面倒だし
430デフォルトの名無しさん:2013/06/11(火) 10:11:18.15
Clojureはleiningenができてからとても楽ちんになった,Lisp系ではお勧めの一つだけど
Schemeが良いならJVM用ならKawaじゃね?
431デフォルトの名無しさん:2013/06/11(火) 10:31:35.84
ABCLも忘れないであげて下さい。
432デフォルトの名無しさん:2013/06/11(火) 12:00:53.30
Schluesselはどうよ?
433デフォルトの名無しさん:2013/06/11(火) 13:34:43.03 ID:15+H+6Gw!
おまえら、GUI出せて、日本語が入力できる処理系を教えろください。
434はちみつ餃子 ◆8X2XSCHEME :2013/06/11(火) 14:28:57.96
Racket かな。
Gauche や Sagittarius も gtk バインディングが有るから GUI に手間取ることはないと思う。
435デフォルトの名無しさん:2013/06/11(火) 14:29:04.73
SBCL+CommonQtとか言ってみる。
きっと茨の道だ。
436はちみつ餃子 ◆8X2XSCHEME :2013/06/11(火) 15:48:23.91
すまん。
Sagittarius には gtk バインディングは無かった。

sagittarius-turquoise で出来たような気がしてたが、
あらためて見たら TODO のところに書いてた。
現時点では Windows しか対応してねぇー
437デフォルトの名無しさん:2013/06/11(火) 20:15:20.43
>>433
Franz様一押し
438433:2013/06/12(水) 00:19:11.59
>>435 Schemeじゃねぇ
>>437 なにそれ
>>434 Gauche-gtk そんなのあった。これか!
439デフォルトの名無しさん:2013/06/12(水) 00:37:41.15
KawaいいよKawa
440デフォルトの名無しさん:2013/06/12(水) 02:56:05.88
>>438
Allegro CommonLispの会社だろFrantz
441デフォルトの名無しさん:2013/06/12(水) 10:46:07.26
>>438
schemeなんて言語使ってると現実世界で生きていくのが面倒くさくなって
世捨て人になっちまうぞ。Common Lisp使え。Common Lisp。
442デフォルトの名無しさん:2013/06/12(水) 19:14:58.69
>441
あのさ、なんでもいいけどSchemeって書いてくれない。気持ち悪いから。
443デフォルトの名無しさん:2013/06/12(水) 19:59:01.33
じゃあThe Schemeということで
444デフォルトの名無しさん:2013/06/12(水) 20:06:05.35
先頭大文字とか lesser lisp 風情がおこがましいです。
schemeでいいです。
445デフォルトの名無しさん:2013/06/12(水) 20:59:45.94
シンボルにしたらみなSCHEMEさ
446デフォルトの名無しさん:2013/06/12(水) 21:25:50.19
(quote 時代遅れの老害)
447はちみつ餃子 ◆8X2XSCHEME :2013/06/12(水) 21:30:55.93
>>445
R6RS では大文字と小文字を区別するよ
448デフォルトの名無しさん:2013/06/12(水) 22:49:25.69
>>447
流石にしってますがな
449デフォルトの名無しさん:2013/06/13(木) 03:08:16.13
Lisp系言語総合スレとか需要ないよね
450デフォルトの名無しさん:2013/06/13(木) 22:03:46.64
ああ、うん
早く独り立ちして自分で楽しいこと見つけてね
451デフォルトの名無しさん:2013/06/14(金) 01:08:19.33
>>449
必要だよ、統合スレは冷たいひとが多いけど、CLスレは優しい人がいっぱいいるから棲み分けにいいじゃん。
452デフォルトの名無しさん:2013/06/15(土) 02:48:38.82
そもそもCLだけに特化しなければならないプログラムをLispで書くという状況が分からない
453デフォルトの名無しさん:2013/06/15(土) 14:50:57.80
そもそも特定の言語に特化されてないプログラムというものがわからない。
454デフォルトの名無しさん:2013/06/15(土) 15:31:20.27
数当てゲームとか?
そういえば大昔にゲーム会社が品物があがらないのでタイトルだけソレの数当てゲームでも出せとか言ったとか言わなかったとか
455デフォルトの名無しさん:2013/06/15(土) 16:47:45.14
pokan
456デフォルトの名無しさん:2013/06/15(土) 20:40:36.70
すいません
lambda関数で遅延リストをシミュレートしたいのですがどうすればいいでしょう
(car (funcall f)) ==> 1
(car (funcall (cdr (funcall f)))) ==> 2
(car (funcall (cdr (funcall (cdr (funcall f)))))) ==> 6
で以降n回目にnの階乗を返すようなfの定義をお願いします
457デフォルトの名無しさん:2013/06/15(土) 23:16:40.26
(defun make-lazy-fact-stream (&optional (acc 1) (n 1))
(let ((acc (* n acc)))
(cons acc
(lambda ()
(make-lazy-fact-stream acc
(+ n 1))))))

(defun f () (make-lazy-fact-stream))

ところで関数に別名つけるのどうやるんだっけ
(setf (function f) (make-lazy-fact-stream))
だと思ったら違った
458デフォルトの名無しさん:2013/06/16(日) 00:53:18.61
(symbol-function 'f) の事?
459デフォルトの名無しさん:2013/06/16(日) 05:40:50.47
あ、ありがとうございますっ!
ふぅ
次にしたいことはmapcan関数のlazy化だな
460デフォルトの名無しさん:2013/06/17(月) 14:56:50.39
CLどころか処理系にもベッタリ依存してますがなにか?
移植性?なにそれ美味しいの?
461デフォルトの名無しさん:2013/06/17(月) 21:58:41.16
JavaよりもLispよりもC言語が一番移植性が高かったというオチ
462デフォルトの名無しさん:2013/06/18(火) 13:54:48.07
もうautoconf地獄はイヤづら。
Javaは意外と移植性高いんでね?
463デフォルトの名無しさん:2013/06/18(火) 14:11:02.51
Cは仕様の範囲が狭いから、プラットフォーム依存は普通にあるし、
処理系依存だって別に珍しいことじゃない。
嘘だと思うなら、LP64からLLP64にポートしてみればいい。
mozilla.orgでさえ諦めるレベル。
464デフォルトの名無しさん:2013/06/18(火) 17:10:29.93
>>462
pure javaの cursesライブラリが無いのがjava嫌いになる理由の一つかもしらん。
465デフォルトの名無しさん:2013/06/18(火) 20:43:51.38
大学の演習や卒研で作ったプログラムのうち、今家のマシンでそのままコンパイル通って動くのはCで作ったモノだけだった
大学はsolarisで家はwindows7
MinGW強すぎ
感動した

lispとjavaとprologとfortranは全滅
haskellはなかったけど、あったとしてもたぶん動かないだろう
466はちみつ餃子 ◆8X2XSCHEME :2013/06/18(火) 20:55:09.94
状況を分類するとどれ?

- 処理系が規格準拠ではない
- 規格の改訂が多くて処理系の実装が追い付いてない
- 規格が分裂して似たようなのが乱立している
- 規格の規定範囲が狭いので処理系の拡張を使わざるを得ない
- 規格なんかない
467デフォルトの名無しさん:2013/06/18(火) 22:08:13.10
- 規格なんかない

と他の4つとの区別がつかないんだが?
468デフォルトの名無しさん:2013/06/19(水) 00:23:53.68
>>466
最強:「windowsでも動くコンパイラないですかね」と聞いて、何も考えずにそのコンパイラ入れて、ソースに何の手直しもしないのにコンパイルできてしかも実行できた
最悪:そもそもwindowsにコンパイラが入らない
469はちみつ餃子 ◆8X2XSCHEME :2013/06/19(水) 00:29:52.72
最近は Common Lisp の処理系も Windows を意識してるみたいだけど、
同等とはいかないっぽいな。
特にスレッドがからむとやっかいな感じ?
Common Lisp の事情はよく知らんけど。
470デフォルトの名無しさん:2013/06/19(水) 01:46:03.76
処理系のビルドでエラーメッセージが出るとやる気がなくなる
471デフォルトの名無しさん:2013/06/19(水) 04:39:38.38
しょんぼlisp
がっかlisp
もうこりごlisp
472デフォルトの名無しさん:2013/06/19(水) 10:54:42.82
CLは言語仕様にスレッドサポートはないからなぁ。
典型的なキッチンシンクアプローチで、仕様策定されているから、
プラットフォームに関連する部分はどうしても処理系依存にならざるを得ないし。
この辺は、やっぱり昔の言語なんだと実感するね。
473デフォルトの名無しさん:2013/06/20(木) 03:59:20.03
せめて標準出力くらいは完璧な互換性を確保してください
474デフォルトの名無しさん:2013/06/20(木) 11:30:18.64
というか、もはや人材不足で仕様策定なんて無理。
コミュニティに利用者の少ないWindowsを無視すれば、
POSIX互換でほぼ問題ないわけだし。
475デフォルトの名無しさん:2013/06/20(木) 13:45:05.51
優秀な人はみんなHaskell使っている
Lispは残りカス
476デフォルトの名無しさん:2013/06/20(木) 19:44:27.35
>>475
まだいたのか?
477デフォルトの名無しさん:2013/06/20(木) 21:01:22.88
Haskell共和国へお帰り下さい
478デフォルトの名無しさん:2013/06/20(木) 21:53:19.70
でも、人工知能系の論文書くとしたらまだまだlispだと思う
479デフォルトの名無しさん:2013/06/20(木) 22:31:43.67
Haskell は面白いけど、マクロがないからなぁ。
480デフォルトの名無しさん:2013/06/20(木) 22:46:05.15
QIと言わないところが何か中途半端だな。
481デフォルトの名無しさん:2013/06/20(木) 22:47:53.53
lispを手続くがたっぽく使ってしまう自分が憎い
そろそろland of lispの第4部読んだほうがいいかな
482デフォルトの名無しさん:2013/06/20(木) 22:52:09.78
Schemeのテストフレームワークでお勧め何かありませんでしょうか
テストする事が多すぎて自動化したい
483デフォルトの名無しさん:2013/06/21(金) 00:55:35.19
残りカス
484デフォルトの名無しさん:2013/06/21(金) 01:12:06.51
哀れな人がいるなあ
485デフォルトの名無しさん:2013/06/21(金) 01:43:29.83
>>483-484
ハスケルはまともな数式処理ソフトないじゃん
486デフォルトの名無しさん:2013/06/21(金) 01:51:29.55
まともなWebブラウザもない言語はカスだよね
487デフォルトの名無しさん:2013/06/21(金) 03:19:38.17
標準で日本語の出力ができない処理系や、どう設定してもWindowsのコマンドプロンプトで文字化けする処理系はウンコ
488デフォルトの名無しさん:2013/06/21(金) 03:40:50.67
それ以前に、Windowsが!
489デフォルトの名無しさん:2013/06/21(金) 06:03:26.24
linuxはウンコ
無料しか取り柄がない
490デフォルトの名無しさん:2013/06/21(金) 11:38:58.14
dmatch マクロって何処がすごいのでしょうか
単なるmatchマクロに ? 構文つけたのと同じに見えるのですが
491デフォルトの名無しさん:2013/06/21(金) 12:24:20.18
>>489
お前は2ch有料な。
492デフォルトの名無しさん:2013/06/21(金) 15:35:44.89
>>481
Lispなんだから手続き型っぽく書いてもイイじゃん。
マルチパラダイム万歳。
Schemeはシラネ。
493デフォルトの名無しさん:2013/06/21(金) 15:36:36.53
Schemeも同じです。
494デフォルトの名無しさん:2013/06/21(金) 17:28:49.34
やっぱりみんなも手続き型っぽく書いてるのか
なんか再帰的な書き方にしないとLisper失格と思ってたんだけどそうでもないのか
495デフォルトの名無しさん:2013/06/21(金) 17:40:35.47
業務プログラム向けのオペレータを作るのが楽だからね。
やりたい事によって、関数型っぽく書いたり、手続き型っぽくなったり。
496はちみつ餃子 ◆8X2XSCHEME :2013/06/21(金) 18:10:21.31
問題を表すのに適した表現方法を選べるのが良いところ。

SICP の3章の冒頭で銀行講座を表す「オブジェクト」と、
それに対するモディファイアやアクセサを定義している様子は
オブジェクト指向的なスタイル。

回路シュミレータのところは制約プログラミングっぽい感じか。

4章の非決定性計算は Prolog っぽいな。

>>494
手続き型的な書き方が適切なのでそれを選んだのならいいけど、
Lisp に慣れてなくてそういう書き方しか出来てないんだとしたら
ちょっともったいないなとは思う。
497デフォルトの名無しさん:2013/06/21(金) 18:42:32.05
>>496
色々と再帰的にリストを処理する関数は書いたけど
実際に何かを作るときにそれをうまく使えないんだよ
498デフォルトの名無しさん:2013/06/21(金) 18:42:56.07
基本やりながら覚えていけば良いのでは?
みんな072のやり方なんて教わらなかったろ?
そのうちに、いろんな方法ができるようになるって。
499デフォルトの名無しさん:2013/06/21(金) 18:58:36.36
>>496
>手続き型的な書き方が適切なのでそれを選んだのならいいけど、
CTMCPで、計算モデルとは何かを知っておくと迷いが減るよな。
500デフォルトの名無しさん:2013/06/21(金) 19:15:32.60
proper tail recursionでないCLで再帰多用は要注意。
CLにはloopがあるでしょ。
501デフォルトの名無しさん:2013/06/21(金) 20:03:53.04
>>498
072は中坊時代に保険の先生に…… orz
502デフォルトの名無しさん:2013/06/21(金) 23:45:44.11
なんで直ぐに再帰やら計算量やらの小難しい話になっちゃうかね。
べつに再帰つかわなきゃLispっぽくないなんてことはないだろうに。

Lispはプログラマーのやり方のほうに言語が歩み寄ってくれる稀有な言語なんだから、
「こんなやり方知らないなんて、もったいない」とか上から目線とかどうかと思うけどね。

バリバリ手続きっぽく書かれていても、ココぞの部分でピリッと効いてるマクロとか
俺なんかそれ見ただけで「お、Lispっぽいじゃーん」とか思っちゃうけどね。
503デフォルトの名無しさん:2013/06/22(土) 00:03:28.50
funcallを使い忘れてエラーになったときに一番lispっぽさを感じる。
504デフォルトの名無しさん:2013/06/22(土) 00:27:04.33
lispの教科書を読むとfor文みたいな繰り返しの方が特殊だというような洗脳を受ける
505デフォルトの名無しさん:2013/06/22(土) 00:36:45.24
再帰使い過ぎの話はここら辺みるといいかも。
http://www.mew.org/~kazu/material/2011-fp.pdf

こっちは代入不可の話。自分はHaskellじゃなくてClojureにいっちゃったけど。
http://www.mew.org/~kazu/material/2013-cross.pdf
506デフォルトの名無しさん:2013/06/22(土) 00:45:13.86
ゲーデルとかチャーチとかチューリングとか再帰とか計算可能性とか論理学?計算機?
そもそも自然数の定義があれでしょ?正方形を埋め尽くす曲線とか信じらんない
507デフォルトの名無しさん:2013/06/22(土) 01:16:13.01
>>506
>正方形を埋め尽くす曲線
クロネッカー?、それともカオス?
508デフォルトの名無しさん:2013/06/22(土) 01:18:29.77
ヒルベルトじゃね?テキトー
509はちみつ餃子 ◆8X2XSCHEME :2013/06/22(土) 01:30:07.21
「ひるおび」ってテレビ番組があるけど、ヒルベルトを連想してしまう。
510 ◆QZaw55cn4c :2013/06/22(土) 03:36:52.69
ペアノだね、自然数の定義に関するペアノの公理とかペアノ曲線とか
511デフォルトの名無しさん:2013/06/22(土) 03:46:40.73
日付変更線に触れないように地球に好きなだけ曲線をひいて、メルカトル図形にすればいいんじゃね?
512デフォルトの名無しさん:2013/06/22(土) 11:54:43.28
好きなだけ引いても覆い尽くされるかどうか分からない。
元々のお題は連続な曲線で閉区間を覆い尽くす者があるかどうか?ってお題。
だから具体的に例を示すか、存在証明をしないといけない。
513デフォルトの名無しさん:2013/06/22(土) 12:09:53.96
>>511
無限舐めるな
514デフォルトの名無しさん:2013/06/22(土) 12:35:00.63
515デフォルトの名無しさん:2013/06/22(土) 12:59:52.97
あと,LISPとか前時代の化石をこれ見よがしに使ってますアピールするの見苦しいし,それってカッコつけてるだけだよねって
516デフォルトの名無しさん:2013/06/22(土) 13:23:10.79
SRFI 49使えよ
517デフォルトの名無しさん:2013/06/22(土) 13:43:10.98
> あと,

何が「あと,」だよw
どこかのレスをコピペするからそうなる
コピペプログラマーにお似合いだな
518デフォルトの名無しさん:2013/06/22(土) 13:54:34.07
(* おおっと *)
519デフォルトの名無しさん:2013/06/22(土) 13:57:55.54
>>509
w
520デフォルトの名無しさん:2013/06/22(土) 14:31:46.12
>>517
括弧と掛けてるんだろ
521デフォルトの名無しさん:2013/06/22(土) 15:29:55.88
>>514
曲線を1次元の図形だと考えると、これは曲線じゃなくね?
フラクタル曲線の次元は1次元よりも大きくて、その次元を限りなく2次元の図形に近づけることができる
次元が限りなく2次元に近い図形で、2次元図形の中を埋めるんだから、そりゃ、なにも不思議ではない
ずるい
522デフォルトの名無しさん:2013/06/22(土) 18:37:09.69
お前は一体何を言っているんだ
523デフォルトの名無しさん:2013/06/22(土) 23:04:48.31
いまさらそんなこと言ってる奴が「不思議ではない」とは笑わせる。
524デフォルトの名無しさん:2013/06/22(土) 23:23:43.80
無知な獣を罠にハメるような設問は関心しない
525デフォルトの名無しさん:2013/06/23(日) 01:42:54.18
数学わすれちゃったんで間違えてるかもしれないけど^^;
SINカーブだって、正方形の一辺の長さを「l」としたとき、
l・sin(nθ)でn→∞にすれば正方形埋め尽くせるんじゃね?
526デフォルトの名無しさん:2013/06/23(日) 02:03:35.11
そこで颯爽とイプシロン・デルタの登場!
527デフォルトの名無しさん:2013/06/23(日) 02:05:05.72
ε「どーもーイプ    シロンでーす!」
δ「どーもデル↑タです。なんでためんねんw」
528デフォルトの名無しさん:2013/06/23(日) 02:53:38.92
全知全能の神の存在を否定するのに使ったプログラミング言語ってlispだったという話は本当でしょうか?
529デフォルトの名無しさん:2013/06/23(日) 08:28:22.97
神さまなんて全裸煩悩だってギリシャのじっちゃんが言ってた
530デフォルトの名無しさん:2013/06/23(日) 09:16:28.47
神はlispで書かれてるよ
531はちみつ餃子 ◆8X2XSCHEME :2013/06/23(日) 09:45:09.77
532デフォルトの名無しさん:2013/06/23(日) 09:54:25.73
どっかのバカLisperが神とか呼ばれてたな
533デフォルトの名無しさん:2013/06/23(日) 10:36:30.91
Lisperは神ではないが
神はLisperかもしれないぞ
534デフォルトの名無しさん:2013/06/23(日) 11:41:32.36
知らんがな
535デフォルトの名無しさん:2013/06/23(日) 12:56:44.67
Lispは神というよりタオらしい
536はちみつ餃子 ◆8X2XSCHEME :2013/06/23(日) 13:11:48.41
537デフォルトの名無しさん:2013/06/23(日) 13:20:23.54
nil は atom を生じ、
atom は S 式を生じ、
S 式は万物を生ず。

ってやつか。
538デフォルトの名無しさん:2013/06/23(日) 13:22:33.89
頭おかしくなったか
539デフォルトの名無しさん:2013/06/23(日) 15:35:12.61
餃子がめずらしくウィットに富んだリンク先をしめしててワラタ
いつもは自分の言葉なのに今日はどうした?>>はちみつ餃子タン
540デフォルトの名無しさん:2013/06/23(日) 17:00:30.28
タオ=道とは?


carは左
541デフォルトの名無しさん:2013/06/23(日) 18:04:21.03
ELISは女の子
Symbolicsは男性器の象徴
542デフォルトの名無しさん:2013/06/23(日) 19:36:26.78
SGIは、、あっそうか。
543デフォルトの名無しさん:2013/06/23(日) 22:35:05.37
>>541
ワラタ
タリーズのコーヒー吹いた、スマフォ汚れてションボリ
544デフォルトの名無しさん:2013/06/24(月) 02:56:11.76
S式がエレガントであることを証明できないことがlispを用いて証明されたと聞いたのだが
545デフォルトの名無しさん:2013/06/24(月) 03:50:05.57
>>541
でもElis中尉はおばちゃんにしかみえないよね
546デフォルトの名無しさん:2013/06/24(月) 06:20:21.43
S式からゆゆ式へ
547デフォルトの名無しさん:2013/06/24(月) 08:53:38.54
それは由々しき事態
548はちみつ餃子 ◆8X2XSCHEME :2013/06/24(月) 11:04:58.04
549デフォルトの名無しさん:2013/06/24(月) 13:09:52.16
Lispスレは有用な話題もなくて寂れてますな
550デフォルトの名無しさん:2013/06/24(月) 13:28:17.74
すごい
551デフォルトの名無しさん:2013/06/24(月) 13:35:42.02
Lisp自体が時代遅れで有用じゃないから仕方ない
552デフォルトの名無しさん:2013/06/24(月) 15:03:21.36
よくゆうよ
553デフォルトの名無しさん:2013/06/24(月) 15:06:29.24
Lisperは総じて雑魚ばかり
554デフォルトの名無しさん:2013/06/24(月) 16:52:44.73
大文字で入力しなくなってから軟弱になったな
555デフォルトの名無しさん:2013/06/24(月) 19:47:21.58
(defmacro recur-let (name args &body body)
(multiple-value-bind (vars vals)
(labels ((f (lst vars vals)
(if (null lst)
(values (nreverse vars) (nreverse vals))
(f (cdr lst)
(cons (caar lst) vars)
(cons (cadar lst) vals)))))
(f args nil nil))
`(labels ((,name (,@vars)
,@body))
(,name ,@vals))))
やったー
lisper見習いだけどschemeの名前付きlet出来たよ
556デフォルトの名無しさん:2013/06/24(月) 20:07:26.81 ID:S2JBsUZH!
>>555
惜しい。初期値の評価は名前の束縛が無い環境でやらないとならない。
(recur-let name ((fn name)) (funcall fn ...) ...) となってる時、
2個目のnameはlabelsで束縛されるnameじゃなくて、その外側のスコープのnameってことね。
557デフォルトの名無しさん:2013/06/24(月) 20:25:31.42
>>556
その式変数の初期化の部分がなにかおかしい気がするけど
(let ((evaled-vals (gensym)))
`(let ((,evaled-vals ,@vals))
(labels ((,name (,@vars)
,@body))
(,name ,evaled-vals))))))
(defun f () (format t "called~%"))
(named-let f ((fn 'f)) (funcall fn))

これでいいのかな
558557:2013/06/24(月) 20:30:43.80
おかしいのは僕の目でした
559デフォルトの名無しさん:2013/06/24(月) 22:18:58.09
3分でわかるcommon lispの式評価規則の解説ってないですか?
シンボル周りの扱いがさっぱりです。
560デフォルトの名無しさん:2013/06/24(月) 22:39:26.43
ごめんなさい
30秒でわかるcommon lispの式評価規則の解説しか知らないです
561はちみつ餃子 ◆8X2XSCHEME :2013/06/24(月) 22:52:05.11
>>559
どこがわからないのかわからないと説明しづらいと思う。
具体的な例を出してこう思うのにこうなるのは何でって質問してみそ。
俺は Common Lisp のことなんぞ知らんけど。
562デフォルトの名無しさん:2013/06/24(月) 23:01:01.40
・シンボルは普通の値用と関数値を持つ
・リストの先頭の場合、関数値が参照される
・それ以外は普通の値が参照される
・ただしsetqやsymbol-functionなど例外がある
・ラムダ式は関数値でなく関数の名前である
で1分

後は
・functionとsymbol-function、quoteの違いの話
・スコープの話
・setfの話
・マクロの話
で2分くらいか
563デフォルトの名無しさん:2013/06/24(月) 23:02:10.73
いやマクロ展開のタイミングの話は5分は必要か
564デフォルトの名無しさん:2013/06/24(月) 23:28:36.53
それこそdotinstall.comの解説動画っぽくなりそう
565デフォルトの名無しさん:2013/06/24(月) 23:40:20.92
>>559
ANSI Common Lisp
3.1.2.1.1 Symbols as Forms
http://zeus.ing.unibs.it/ansi-cl/subsubsu/symbolsa.htm
566デフォルトの名無しさん:2013/06/25(火) 00:02:25.97
>>561
ありがとうございます。
たとえばsymbol-valueは仕様書には「symbolのvalue cellを参照する」と書かれています。
setfの第1引数を(symbol-value 'a)にするとaのvalue cellの中身を書き換えることができるので
(symbol-value 'a)はcellの中身でなくcellへの参照値に評価されると思うのですが、
トップレベルで(symbol-value 'a)を評価するとcellの中身が返ってきます。
ということは参照値から中身への暗黙の変換を行う規則があるのだと思うのですが、
そういった規則はどれだけあってどういうときにどう働くのか全体が把握できない

といった悩みです。
567デフォルトの名無しさん:2013/06/25(火) 00:03:46.19
setfは特殊形式
評価方法は普通の関数呼び出しと違って、それぞれ独自。
568デフォルトの名無しさん:2013/06/25(火) 00:05:14.02
結局common lispは個別に関数やマクロをひとつずつ覚えていくしかない。
30秒で説明できるといった>560はたぶん冗談だろう。
569デフォルトの名無しさん:2013/06/25(火) 00:05:16.88
まあマクロだけどな
570デフォルトの名無しさん:2013/06/25(火) 00:57:02.60
最近みる妙の書き込みから想像すると
ハスケルで何か劇的な新機能でもできたのかな?
571デフォルトの名無しさん:2013/06/25(火) 01:03:01.42
land of lispの影響?
572デフォルトの名無しさん:2013/06/25(火) 01:07:41.82
setf.lsp読んでみればいいのに。
結構簡単だから。例えばgclのとか。
http://www.cs.cmu.edu/afs/cs/project/cmt-55/lti/Lab/Depot/Old/gcl-2.2/lsp/setf.lsp
573デフォルトの名無しさん:2013/06/25(火) 10:06:01.56
>>566
暗黙に参照に変換されることはない。setfの定義がうまいこと作られている。
まずsetfは関数でなくマクロなので、各引数は評価*されない*。
(setf (symbol-value 'a) 2)
とかすると各引数は評価されないでsetfに渡される。するとsetfは第一引数がリストだということと、
このリストの先頭にある名前、この場合ではsymbol-value、を見て、
それに対応する(あらかじめ色々な関数やマクロそれぞれに対して定義された)処理を探してくる仕掛け。
www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/generalizedVariables.html
の最初と最後の節を参照。
574デフォルトの名無しさん:2013/06/25(火) 10:09:49.60
あ、微妙に誤読してた、まあいいか
575デフォルトの名無しさん:2013/06/25(火) 15:49:00.00
式の種類ごとにインバージョンの定義が必要なんだよね。
式を完全に評価してしまう一歩手前で止める、という演算が
あればもっと汎用的にできた気がする(Cでいう&みたいな)

たとえば
(setq lst '(a b c))
のとき
(car lst)は (car '(a b c)) → a → aの値
と評価されていくけど、
新しい演算lvalueを使うと
(lvalue (car lst)) → (lvalue (car '(a b c))) → (lvalue a) → a
で止まるみたいな。
そうすると
(setf (car lst) 480)
でなく
(setq (lvalue (car lst)) 480)
と書けるし、 インバージョンを用意する必要もない。
576デフォルトの名無しさん:2013/06/25(火) 16:02:02.46
ハッシュとかどうするの
新規のキーに値を追加したいとき、その値を入れる場所は、まだ無いよ
577デフォルトの名無しさん:2013/06/25(火) 16:31:11.62
578デフォルトの名無しさん:2013/06/25(火) 20:52:37.18
お前らLispしか取り柄がないのに
そのLispも不自由なのな
579デフォルトの名無しさん:2013/06/25(火) 21:38:24.74
さてコイツの取り柄は何だろうな
580はちみつ餃子 ◆8X2XSCHEME :2013/06/25(火) 22:59:34.24
ISLISP の読み方ってイズリスプでいいの?
581デフォルトの名無しさん:2013/06/26(水) 02:28:44.32
使う側としては参照よりsetfのが汎用的だと思うけどなあ
マクロに関してはsetfは勝手に展開して追ってくれるので、オレオレアクセッサも
マクロとして定義してやる限りインバージョンを自分で定義する必要はほとんど発生しないと思う。

>>577 のリンクの冒頭に出てくるmaxfだってcommon lispでは
(define-modify-macro maxf (val)
(lambda (place val) (max place val)))
で定義出来るし、添字計算だって1回しかしない(これも >>573 のリンク参照)。

しかしTAOよく知らないんだけど設計始まったのcommon lisp以前なんだな。
当時setfまわりあまり固まってなかったんだろうか。
582デフォルトの名無しさん:2013/06/26(水) 04:04:01.88
583デフォルトの名無しさん:2013/06/26(水) 12:01:49.02
>>581
define-modify-macroの話はそのリンク先を最後まで読むと書いてあるよ
584デフォルトの名無しさん:2013/06/27(木) 20:44:22.08
>>581
David Moonのsetf hackとほぼ同時期なんじゃないか?
TAO関連はリアルタイムではほとんど発表してないはずだが。
若干日本語の報告があるだけで。
585デフォルトの名無しさん:2013/06/28(金) 00:08:54.97
OCamlの一本山であるJaneStreatではS式が永続化に使われているそうな。
http://d.hatena.ne.jp/camlspotter/20130626/1372228771
586はちみつ餃子 ◆8X2XSCHEME :2013/06/28(金) 13:16:28.64
そうか。
587デフォルトの名無しさん:2013/06/28(金) 22:26:53.83
エラーもか
588デフォルトの名無しさん:2013/06/29(土) 00:43:35.08
http://d.hatena.ne.jp/niitsuma/20081113/1372410009
miniKanrenが思ったように動いてくれないので少し改造した
589デフォルトの名無しさん:2013/06/29(土) 13:52:16.43
setfはアラン・ケイのアイデアなんだってね
590デフォルトの名無しさん:2013/07/09(火) 00:53:29.15
(map f lst)
でfがvaluesを返す場合は動かない(racketの場合)
関数の返り値にvaluesなんか使うぐらいならlistで返した方がまし?
valuesのメリットって何があるの?
591はちみつ餃子 ◆8X2XSCHEME :2013/07/09(火) 01:15:39.24
>>590
ちょっと速度が速くなったりメモリ効率がよくなったりする可能性がある。
スタックに積んで呼出し元に戻るという戦略が可能であり、
その方法を使った場合はメモリアロケーションが発生しない。
が、実装によるんじゃねーの。
内部的にはリストを作って受渡すりょうな実装もあるから、そういうのなら結局は同じことになるか、
場合によってはリストを分解する手間の分だけ遅くなることも有り得る。

CPS 変換された世界では関数を呼出すのも戻ってくるのも同じことなので、
呼出しには複数の値を渡せるのに戻ってくるときはひとつだけってのでは理屈に合わなくなるっていう理由もあるっぽい。
規格の末尾にある形式的意味論では CPS で書かれてるとかなんとか聞いたけどよくわかんなかった。

ちなみに map の第一引数に渡す手続きは一個の値を返すことと規格では明記されてる。
592デフォルトの名無しさん:2013/07/09(火) 01:18:25.06
リストよりは型が強い

(lambda (x)
(let-values (((a b) (f x)))
a))
593はちみつ餃子 ◆8X2XSCHEME :2013/07/09(火) 01:28:08.65
値の個数は型じゃないだろ。
多値はファーストクラスじゃないんだし。

でもまぁ、値の個数が決まってる場面では多値にしとくとチェックが働くのが良いとは俺も思う。
594デフォルトの名無しさん:2013/07/09(火) 08:06:12.26
595デフォルトの名無しさん:2013/07/09(火) 12:38:13.23
sol-fa-soft 薄着少女
596595:2013/07/09(火) 12:41:36.26
すいません。 誤爆しました。
597デフォルトの名無しさん:2013/07/09(火) 22:39:55.25
let over the lambda is loli
598デフォルトの名無しさん:2013/07/10(水) 02:10:04.86
もちろん18歳以上ですよ
599デフォルトの名無しさん:2013/07/10(水) 22:37:07.29
Let Over Lambda Is ..?
600デフォルトの名無しさん:2013/07/12(金) 23:07:55.86
納得いかない。eq?ならわかるがequal? でも#f
#lang racket
(require srfi/9)
(define-record-type *foo-type*
(make-foo name)
foo-type?
(name foo-id)
)
(let ([x (make-foo 'a)]
[y (make-foo 'a)]
)
(equal? x y)
)
;=> #f
601はちみつ餃子 ◆8X2XSCHEME :2013/07/13(土) 04:25:55.60
>>600
R6RS の equal? はリスト、ベクタ、文字列、バイトベクタ以外は eqv? と同じになる。 (11.5)
そしてレコードを eqv? で比較した場合、同一のコンストラクタによって作られた構造体であっても、
別個の呼出しで作られた構造体である場合は #f になる。 (Standard Libraries: 6.1)

単純に再帰的に辿っちゃ駄目って話はここらへんで議論されてるみたい。 私はちゃんと読んでないけど。
http://www.r6rs.org/r6rs-editors/2005-August/000830.html

#lang racket の equal? はいくらか拡張されていたりはするみたいだが、
R6RS で #f となると定められているケースをあえて変更するほど強烈な動機があるかっていうとそうでもないように思う。
Racket は色々と冒険してるけど、 equal? はさすがにあまりに基本的な機能だからそうそう気軽に変えれないだろ。
602はちみつ餃子 ◆8X2XSCHEME :2013/07/13(土) 04:34:03.50
Sagittarius の中の人は未定義だったと思うって書いてるのを見付けたけど、
>>600 のケースなら #f で確定っていう俺の解釈が間違ってたりする?
https://twitter.com/tk_riple/status/355748513826607105
603デフォルトの名無しさん:2013/07/13(土) 04:41:19.38
Javaのequals()のオーバーライド的なことも出来んのかプンプン
604デフォルトの名無しさん:2013/07/13(土) 08:18:35.05 ID:cGgXBVKi!
SchemeというかLispの伝統なんだけど、型で操作が決まるんじゃなくて、型は単なる入れものとして
用意しておいてそれに対する操作を選ぶのは使う側だ、っていう文化がある。
リストを二分木に見たり連想リストに見たりね。
レコードの等価性も、レコード自身が決めるんじゃなくて、使う人によって何が等しいかを
決めるのが良いって背景があるかも。主流のオブジェクト指向とは異質だけれど。
Kent Pitmanがこの文化についてちょっと書いてたと思う。これかな。
http://www.nhplace.com/kent/PS/EQUAL.html
605デフォルトの名無しさん:2013/07/13(土) 09:00:01.79
格言 「嫌なら自分で作り直せよ」
606デフォルトの名無しさん:2013/07/14(日) 13:29:55.15
そしてCLOSが生まれた
607はちみつ餃子 ◆8X2XSCHEME :2013/07/14(日) 14:27:59.67
CLOS 風のオブジェクトシステムはモジュールシステムと相性が悪いって話があるんだけど、
http://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3AGenericFunction%E3%81%A8Module
いくつかの Scheme 処理系に入ってるオブジェクトシステムはやっぱり CLOS ベースだよね。

Schemer もなんだかそれに慣れてしまってるというのと、 CL からのライブラリの輸入のために
CLOS で妥協しちゃってるというのがあると思う。
あらためて Scheme 的なオブジェクトシステムを考えるとしたらどんな設計が綺麗だと思う?
608デフォルトの名無しさん:2013/07/14(日) 14:56:33.62
モジュールはマルチバイト文字列関係と数値計算用の行列関係のモジュールだけをコアでいれておいてくれればいいよ、もう

CLOS組み込むなら、型シグネチャを表現する仕組みをいれてほしかったり
609デフォルトの名無しさん:2013/07/14(日) 19:04:15.21
http://d.hatena.ne.jp/camlspotter/touch/20080906/1220723583
http://www.geidai.ac.jp/~marui/clojure/rationale/
http://eed3si9n.com/ja/simplicity-matters

変数代入を禁止するとオブジェクトは直接使うためじゃなく、互換性とるため程度のものになりやすいのかもね。
610はちみつ餃子 ◆8X2XSCHEME :2013/07/14(日) 20:00:31.78
>>609
なるほど。 でも、 Lisper にとってはその「互換性をとるため」の重みは結構大きいのかもしれない。
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-z6b2ut
ここで言う「どんなに汚くても、打てる手段がある」の手段のひとつになり得る。

とは言うものの、ここで言う Lisp は Common Lisp のことだよな。
Scheme (特に R6RS) だとむしろ後から変更したり割込んだりできないようにカプセル化するのが好まれる気がする。

理屈重視の人はオブジェクトシステムにあまり関心がなくて、
実用重視の人は (多少の問題があっても) CLOS 風ので充分だって感じなんだろうか。

shiro さんはオブジェクトシステムの支援なしでまとまったプログラムを書くのはしんどいと書いてるように、
http://practical-scheme.net/wiliki/wiliki.cgi?l=jp&p=Scheme%3A%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E8%A1%A8%E7%8F%BE#H-ej37ta
実務で Scheme を使っている人にとってはオブジェクトという抽象単位は使い勝手が良いんだろうね。
611デフォルトの名無しさん:2013/07/14(日) 20:05:45.42
>>609の一番上のページで参照されてる元記事は、
凄く型の強い言語(OCaml)でのOOPの不自由さを言ってる。
CLOSはずっとフリーダム。
612デフォルトの名無しさん:2013/07/14(日) 20:16:28.26
CLOS とマクロとリーダマクロ使うとどこまでも自由 むしろ自由すぎて辛いくらい
613デフォルトの名無しさん:2013/07/14(日) 22:05:16.20
>>612
それ、CLOS関係ないし
614デフォルトの名無しさん:2013/07/17(水) 23:14:42.95
Lispの世界で「パラメーター」って動的スコープ変数の事なの?
615はちみつ餃子 ◆8X2XSCHEME :2013/07/17(水) 23:39:38.41
>>614
Scheme では仮引数のこともパラメタと言う。
R5RS ではそのへん曖昧なんだけど、rest-parameter って言葉は使われてるな。
R6RS 以降でははっきりと argument と parameter が使い分けられるようになったっぽい。

srfi-39 のパラメタは動的スコープをエミュレートするオブジェクトだけど、
あくまでオブジェクト側の性質であって、
変数に属性が付いてるわけじゃない。

Common Lisp のスペシャル変数とは性質が違うので誤解なきように。

というわけで、「Lisp の世界で」と一括りにすることは出来ないんじゃないかなぁ。
他の Lisp を知ってる人のそこらへんの考察は尋いてみたいね。
616デフォルトの名無しさん:2013/07/17(水) 23:44:27.25
defparameter の事を言ってる?
defparameter で定義するのはプログラム全体に対するパラメタだと思う。
このパラメタは動的スコープの変数だけど、
全ての動的スコープの変数をパラメタと呼ぶわけじゃない。

それとは別に、いわゆる仮引数の事も普通にパラメタと呼んでると思う。
617はちみつ餃子 ◆8X2XSCHEME :2013/07/18(木) 01:09:54.64
一昔前まで Scheme に限らず argument と parameter の区別ははっきりしてなかったんだけど、
(訳がというわけじゃなくて英語での使い分けも)
parameter が仮引数で argument が実引数であるという誤解 (?) が一部で生じて
なんかもうそれでいこうみたいな空気だと思うんだけど、英語の話なのでよくわかんね。
618はちみつ餃子 ◆8X2XSCHEME :2013/07/18(木) 01:11:19.38
JISX0015:2002 情報処理用語(プログラム言語) から当該箇所を抜粋。
http://gazo.shitao.info/r/i/20130718010245_000.png
619デフォルトの名無しさん:2013/07/18(木) 01:16:15.88
そういう仕様って有料の情報じゃないの
620デフォルトの名無しさん:2013/07/18(木) 09:59:09.84
>>618
今度から
カラポって書かないと駄目か
621はちみつ餃子 ◆8X2XSCHEME :2013/07/18(木) 12:30:19.86
>>620
カラポ?
622デフォルトの名無しさん:2013/07/18(木) 12:47:22.03
>>620
ガッ?
623はちみつ餃子 ◆8X2XSCHEME :2013/07/18(木) 12:54:54.06
空ポインタのことかな。 以前に C スレで話題になったことがある。
http://www.logsoku.com/r/tech/1331786500/#173
http://www.logsoku.com/r/tech/1331786500/#266

私も「からポインタ」だと思ってたけど、 C の規格的には「くうポインタ」らしいんだわ。
情報処理一般としての用語と C の用語が一致するとは限らないけど、
なんだかんだで C の影響力は強いからな。

実用上はぶっちゃけどうでもいい話なんだけど、
思ってたのと違うってのは、雑談としては面白いよな。
624デフォルトの名無しさん:2013/07/18(木) 14:07:40.41
空集合は「くうしゅうごう」だからかな
空文字列は「くうもじれつ」?
625デフォルトの名無しさん:2013/07/18(木) 14:14:22.01
そらポインタかと思ってた
626デフォルトの名無しさん:2013/07/18(木) 21:19:21.31
この速さなら言える……ソラポ
627デフォルトの名無しさん:2013/07/18(木) 21:23:51.69
クポ
628デフォルトの名無しさん:2013/07/18(木) 21:24:49.03
>>624
集合と文字列の音読み訓読みはどうなってるわけなの
629デフォルトの名無しさん:2013/07/18(木) 21:28:46.63
>>624
小学生の時「引数」をインスウって読んでた orz
630デフォルトの名無しさん:2013/07/18(木) 22:09:24.65
現代の送り仮名ルール的には「引き数」と書くべきなんだけどな。
まあ数学の世界の方から来た伝統なんで仕方ないが。
631デフォルトの名無しさん:2013/07/18(木) 22:10:09.29
何を引くんだろ
632630:2013/07/18(木) 22:17:32.89
元は対数表です。表を引く時の値が引数。
633デフォルトの名無しさん:2013/07/18(木) 22:35:42.42
数表は対数表以外にもあるし。

関数のパラメタとかアーギュメントを引数と訳したほうが先じゃないの?
634630:2013/07/18(木) 23:23:41.20
昔は掛け算するのが大変なので、
三角関数表も対数表と組み合わせたものが使われていたのです。
ちなみに対数表や三角関数表が日本に入ったのは江戸時代初期です。
635デフォルトの名無しさん:2013/07/19(金) 09:46:27.33
それはすごい発見だ。是非どこかで発表を。
636デフォルトの名無しさん:2013/07/19(金) 11:02:14.47
用語なんかどうでもいいわ。
もっと本質的な議論しようぜ。
637はちみつ餃子 ◆8X2XSCHEME :2013/07/19(金) 13:11:29.28
用語重要。
用語がわかると資料の検索効率がかなり良くなるぞ。
質問するにしてもうやむやな言葉じゃさっぱり伝わらん。

でも、同じ意味なのに分野によって違う言葉が使われてたりするのは、
もうちょっと統一してもいいのになぁと思わなくもない。

例えば Windows の世界ではカーソルって言うとマウスカーソルのことなんだよな。
じゃあテキスト入力のところに出てくるアレは何よってことになるとキャレットという名前が付いてる。
Emacs 用語ではポイントという。

違う名前が付いてるのはまだマシなほうで、
ウェブブラウザと Emacs ではフレームとウィンドウの意味が逆になってる。
考えてみれば窓の中に骨組があるのも変な話なので、
フレームの中にウィンドウがある Emacs の方が妥当なのかもしれないな!!
638デフォルトの名無しさん:2013/07/19(金) 13:41:23.50
りんねちゃんと無人島で二人きりて。
それどう考えてもエロフラグやろ…。
これのIF展開の薄い本が出ることを期待!!
639デフォルトの名無しさん:2013/07/19(金) 13:46:20.16
「テキスト入力のところに出てくるアレ」にはEmacsでもカーソルって名前が付いてるよ。
「ポイント」はアレの位置を表す整数。

www.gnu.org/software/emacs/manual/html_node/emacs/Cursor-Display.html
www.gnu.org/software/emacs/manual/html_node/eintr/Point-and-mark.html
640はちみつ餃子 ◆8X2XSCHEME :2013/07/19(金) 14:53:10.20
そうか。
641はちみつ餃子 ◆8X2XSCHEME :2013/07/19(金) 14:53:45.31
>>638
「りんね」ってDQNネームだよね。
642デフォルトの名無しさん:2013/07/19(金) 17:02:14.29
誤爆、今月二回目じゃないですか!
643はちみつ餃子 ◆8X2XSCHEME :2013/07/20(土) 00:59:47.80
プリティーリズムにもりんねという名前のキャラがいるのを発見。
今時は割と普通な名前なのかね。
644名無し募集中。。。:2013/07/20(土) 09:46:58.22
りんね・・・
645デフォルトの名無しさん:2013/07/20(土) 09:53:30.93
らけっとちゃんと無人島で二人きりて。
それどう考えてもエロフラグやろ…。
これのIF展開の薄い本が出ることを期待!!
http://nostarch.com/realmofracket
646デフォルトの名無しさん:2013/07/20(土) 10:55:08.41
RoR
647デフォルトの名無しさん:2013/07/20(土) 18:47:46.84
Rand of Risp
648デフォルトの名無しさん:2013/07/20(土) 18:52:48.30
Common LispにはOn LispやLet Over Lambdaを始め
実用/実践Common LispやLand of Lispなどの名著がたくさんあるのに
Schemeときたらねw
649デフォルトの名無しさん:2013/07/20(土) 18:58:01.72
既存のLisp方言には囚われない俺俺オリジナルLispを作るぜえええ
650デフォルトの名無しさん:2013/07/20(土) 19:49:41.68
まあ、平均的なLisperならオレオレ実装を持っていて当然だからん
オレオレ実装をもってないのが許されるのは初心者まで
651デフォルトの名無しさん:2013/07/20(土) 21:58:00.42
なんだ、俺Lisperじゃなかったのか
652はちみつ餃子 ◆8X2XSCHEME :2013/07/21(日) 01:15:48.77
Realm of Racket って日本語化の予定はないの?
653デフォルトの名無しさん:2013/07/21(日) 09:34:26.27
>>648
> Common LispにはOn LispやLet Over Lambdaを始め
> 実用/実践Common LispやLand of Lispなどの名著がたくさんあるのに
> Schemeときたらねw

英語の原書ではSchemeの方がCommon Lispよりも名著がずっと多い、昔からね。
しかもCommon Lispで名著や好著と呼べるレベルの本、つまり上に名前があげられてる類の本が
出版されるようになったのは最近のこと。10年前にはロクな本が出版されていなかったぞ。
Common Lispを取り巻く書籍の状況がようやくSchemeに近づいてきたってだけ。
ああ日本語しか読めない君みたいな人には関係ないか?w
上に名前あげてるのって全部翻訳ある本だよねw
654デフォルトの名無しさん:2013/07/21(日) 12:52:56.68
schemeの名著と言われたら、真っ先に和田本が浮かぶ

というか、そもそもscheme自身についての解説書は必要でしょうか
別の応用の解説書で、たまたまschemeを実装に使ってるという本なら必要だとは思いますが
655デフォルトの名無しさん:2013/07/21(日) 14:26:21.48
素数夜曲っていう本が気になるけど分厚すぎて根気が続く気がしない
656デフォルトの名無しさん:2013/07/21(日) 14:40:06.10
今、整数の公理系をプログラミング言語で実装するのって流行ってるの?
657デフォルトの名無しさん:2013/07/21(日) 16:19:07.06
>>654
原書のほうじゃなくて?
あれは日本語訳が…
658デフォルトの名無しさん:2013/07/21(日) 16:24:24.58
Lisperには、和田本の変な日本語を楽しむ余裕が必要
659デフォルトの名無しさん:2013/07/21(日) 17:01:09.86
そういえばSICPスレが落ちているね

>>657,658
ちょうど今、読み始めているけど(節3.5.2を終えたところ)、
文章の日本語に何ら違和感を持たない自分は変なのだろうか?
誤って理解しないよういくらか冗長な文章であるけれど、
慎重に言葉使いを選んで翻訳されているように思える....
660659:2013/07/21(日) 17:03:38.12
自己レスで訂正

>そういえばSICPスレが落ちているね

勘違い、落ちていなかった...
661デフォルトの名無しさん:2013/07/21(日) 17:09:44.27
>>659
訳本だと分かってれば完璧な部類に入るが、「あ、これ日本人が書いたんだ〜」で読み始めた人は本を床に叩きつけるレベル
662659:2013/07/21(日) 17:16:33.78
>13 名前: 仕様書無しさん Mail: sage 投稿日: 2013/07/11(木) 22:12:52.65
>今時にありがちな書籍のタイトル
>・はじめてのXXX
>・サルでもわかるXXX
>・ふつうのXXX
>
>これに当てはまるのは、どれも愚本のたぐい
>アマチュアとしてプログラミングを楽しみたい人には適しているかもしれないが、
>専門家/技術者の道に進もうと考えておるなら、避けるべき
>これら優しい口調の文章で「分かったつもり」の感覚に慣れてしまうと、
>次のステップへ進むために読む専門書の日本語文書に拒否反応を起こしてしまう

>>661
こういった本を期待するのが当たり前だ!と思うほど頭が慣れきってしまった人であれば、
SICP本を読んで床に叩きつけるのも合点がいくね
663デフォルトの名無しさん:2013/07/21(日) 17:21:46.91
>>662
そもそもSICPはscheme本じゃなくて計算機論の本だから、schemeの解説を期待して本を読んだ人は床に叩きつけると思う
664デフォルトの名無しさん:2013/07/21(日) 17:22:04.81
何を言いそうか先に見当をつけて
図を見てコードを見て、それから文章を読んで確認する
簡単だろ
665デフォルトの名無しさん:2013/07/21(日) 21:03:35.50
>>663
アレを床にたたきつける人は先に日本語の読解力を も っ と つけておくべきだと思う
666はちみつ餃子 ◆8X2XSCHEME :2013/07/21(日) 21:25:56.73
議論はされつつも結局はまとまらずに規格 (RnRS) に入ってないものってのが結構あるんだよな。
デファクトスタンダードなライブラリとか SRFI も含めて言語としての Scheme を解説した本があれば、私は買っちゃうね。

それと、今 (日本語で) 出てる本はだいたい R5RS かそれより前の規格がベースになってるじゃん?
R6RS なり R7RS なりに改版するだけでもそれなりの需要があると思うんだけどどうよ?
667デフォルトの名無しさん:2013/07/22(月) 05:41:13.33
cps変換とか直感論理との関係とからへんの話が面白そうなんだけど、なんかオススメの本とかない?
668デフォルトの名無しさん:2013/07/22(月) 19:20:34.38
>>665
論点違ってないか?
おそらく scheme の解説を期待する人に与えるほうが問題なんだが
669デフォルトの名無しさん:2013/07/23(火) 06:35:20.57
そんなこと問題じゃないでしょう。
言語の解説をする本じゃないことは目次をみれば分かる。
670デフォルトの名無しさん:2013/07/23(火) 07:42:10.59
671デフォルトの名無しさん:2013/07/23(火) 09:17:31.05
>>669
エスパーしてみると、>>668には「与える」とあるから、
おそらく>>668は学部の講義テキストとしてSICP本を「与えられた」けど、
「scheme の解説を期待する人」だったので、床に叩きつけたんじゃないかと....
いわゆる、講義に付いていけない(付いていけなかった?)落ちこぼれの
泣き言ないし恨みつらみだと思われる

もしも自己啓発として独学の為「自ら手にした」のであれば、普通は目次くらい目を通すから
これが言語解説本でないことは(>>669が言うように)猿でもわかるはず(決して安価じゃないし)
というか、英語であれば全文が公開されているのだから、目次以前の話のような気もするが....
672デフォルトの名無しさん:2013/07/23(火) 10:12:05.43
lispの人って認定厨多すぎw
673デフォルトの名無しさん:2013/07/23(火) 10:19:02.42
そうやって逃げたかw
674はちみつ餃子 ◆8X2XSCHEME :2013/07/23(火) 11:07:44.77
話の起点は >>653 だろ。
「Scheme の本」の話なのに直後に >>654 が SICP の話題を出しやがるから、
「いやいや、 Scheme 自体を解説した本もいるだろ」っていう反応だで
675デフォルトの名無しさん:2013/07/23(火) 11:12:09.91
だで (笑)
676デフォルトの名無しさん:2013/07/23(火) 11:20:40.22
ム板も夏かー
677デフォルトの名無しさん:2013/07/23(火) 11:30:52.14
>>675
名古屋人をDISってんでにゃーよ
678デフォルトの名無しさん:2013/07/23(火) 11:44:10.65
猫可愛い

γ⌒ヽハ,,ハ ニャ-
("_) (,, ・ェ・)  
679デフォルトの名無しさん:2013/07/23(火) 13:36:39.34
>>647

ほう、「本を床に叩きつける(>>661)」やら
「scheme の解説を期待する人に与えるほうが問題(>>668)」とやらが、
「いやいや、 Scheme 自体を解説した本もいるだろ」と解釈できるのか

さすがコテハン様、敬服しますわ
680679:2013/07/23(火) 13:39:17.97
アンカを訂正、>>647>>674 の間違い
681デフォルトの名無しさん:2013/07/23(火) 13:41:19.67
>>653
PAIPがあるじゃないですか。やだー
682はちみつ餃子 ◆8X2XSCHEME :2013/07/23(火) 14:14:03.83
DDI
683デフォルトの名無しさん:2013/07/23(火) 14:29:01.62
Winstonの"Lisp"の3rd ed.(1989) Common Lisp版が、
Common LispとSchme合わせて一番古い著名本じゃないかな。
ほぼ同時にCLOS本。
仕様書で良ければCLtL(1983)が5年くらい先行。

Common LispはずっとMLとNetNews文化だったから
その後あまり本が出なかったね。
684はちみつ餃子 ◆8X2XSCHEME :2013/07/23(火) 15:06:02.84
Scheme だと何だろう?
TSPL ?
最初の版が何年なのかよくわからんが第二版は 1996 てなってるな。
685デフォルトの名無しさん:2013/07/23(火) 20:46:45.60
>>669
目次など読まない
686デフォルトの名無しさん:2013/07/23(火) 21:32:21.13
目次 読み方で、検索するとだいたいこんな感じのことが書いてある。
http://www.osaka-kyoiku.ac.jp/~shakai/seiyosi/howtoread.htm
687デフォルトの名無しさん:2013/07/23(火) 21:49:09.58
実践するとSICPの場合、まえがきでロックしちゃうか
688デフォルトの名無しさん:2013/07/25(木) 14:17:05.78
熱心な読者の粘着ぶりを見ていると
SICPの日本語版って危険な本みたいね
689デフォルトの名無しさん:2013/07/25(木) 15:41:58.91
ということにしたいのですね
690デフォルトの名無しさん:2013/07/25(木) 15:59:15.30
事実、2評に分かれて論争起こっている時点でそういう事だよ。
691デフォルトの名無しさん:2013/07/25(木) 16:03:36.43
>>690
2評に分かれるっていってもなぁ、SICP自体は言語解説の本ではなくアルゴリズムやデータ構造について学ぶコンピュータ概論みたいな書籍だから既知の事について学ばされる人が苛ついてるだけじゃないの?
692デフォルトの名無しさん:2013/07/25(木) 16:06:11.44
むしろ分からない人が焦れてる。
693デフォルトの名無しさん:2013/07/25(木) 16:11:17.29
練習問題が理系向けで歯が立たなくてイラつく(本心)
694デフォルトの名無しさん:2013/07/25(木) 16:18:48.51
>>693
そりゃそういう人(理系)向けなんだからどうしようもないんじゃ?
695デフォルトの名無しさん:2013/07/25(木) 16:41:27.22
>>693
確かに数学やデジタル回路ならともかく、アナログ系は電子工学の基礎が無い人にはつらいわな
問題2.13の並列抵抗を仮に突破できたとしても、問題3.73から始まるRC回路で絶望するだろw
696デフォルトの名無しさん:2013/07/25(木) 17:24:45.91
あれだ。クヌースの本の練習問題の難しさに付く、数学が必要な場合の「M」みたいに、
そういう問題の目安として「E」を。
697はちみつ餃子 ◆8X2XSCHEME :2013/07/25(木) 17:25:34.85
このスレは「Lisp Scheme」スレなわけだし、
多少はブレたり雑談をまじえたりはするにせよ、
SICP の内容そのものは本来は管轄外じゃねーの。
698デフォルトの名無しさん:2013/07/25(木) 17:31:42.79
まったく賛同できないが何か嫌なことでもあったのか
699デフォルトの名無しさん:2013/07/25(木) 17:44:28.28
>>697
同意する
でもなー、SICP読んで電子回路含めた理系の基礎教養も理解できないようじゃだめじゃないか?
とかも思ったりする。

#まぁ理系といっても医学とかだとまったく相容れないってのはあるけどさー
700はちみつ餃子 ◆8X2XSCHEME :2013/07/25(木) 17:44:38.75
俺がどうとかじゃなくてさ、
そう思うんならその理由を書けよ。
701デフォルトの名無しさん:2013/07/25(木) 17:46:14.85
え?
699だけど >>700の返しって俺?

#むしろワタクシが日本語と言う言語を勉強せにゃあかんかもしらん。
702はちみつ餃子 ◆8X2XSCHEME :2013/07/25(木) 17:48:16.63
おっと >>700>>698 に向けてのことね。
703デフォルトの名無しさん:2013/07/25(木) 17:59:15.55
>>702
ここが「Lisp Scheme」スレであり「多少ブレたり雑談を交えたりはする」のに
Schemeを利用するSICPの内容についての軽い雑談がアウトというのは説得力に欠けるだろう
704はちみつ餃子 ◆8X2XSCHEME :2013/07/25(木) 18:05:58.66
>>699
基礎教養として必要かどうかってのはまた別問題だろ。
有用な参考書として SICP を挙げるのはいいと思うけど、
Lisp/Scheme という言語をちょろっと使いたいだけの奴だって別にいいと思うんだよ。
Lisp/Scheme はそれが出来る言語だし、
サイエンスと強力に結びついてるかのようにハードルを上げちゃってる感じがイケてないと思う。

>>703
アウトとは書いてないだろ。
「本来は管轄外」なのに、ちょっと執着しすぎじゃねーのという感じのことが言いたいだけ。
コンピューターサイエンスに関心がない奴だって Lisp/Scheme を使ったっていいだろ?
このスレに来るなら理解してて (最低限目を通してて) 当然みたいな態度がちょくちょく見えてヤな感じだと思うわけだよ。
705698ではない:2013/07/25(木) 18:09:33.28
>>702
何か真面目な議論でスレが流れている時であれば
SICPの話題が目障りだというのなら分かるけど、
スレ(板?)全体が停滞気味なんだから、
(Schemeとも関連のある)SICP談義で雑談モードもいいんじゃねえの?

というか、自分の不幸を他人に八つ当たりして発散させるよりも、
自分から新鮮なネタを提供するほうが前向きな生き方だと思うよ
706はちみつ餃子 ◆8X2XSCHEME :2013/07/25(木) 18:13:34.43
>>705
> というか、自分の不幸を他人に八つ当たりして発散させるよりも、
> 自分から新鮮なネタを提供するほうが前向きな生き方だと思うよ

ほら、またこういうことを言う。
別に話題にすんなとは言ってなくて、
そういう態度がクソだって言ってるんだよ。
707デフォルトの名無しさん:2013/07/25(木) 18:14:24.99
>>704がLisp/Scheme初心者専用スレを立てて移動すればいいんじゃね?

このスレ、別に初心者お断りではないけれど、理系お断りとも書いていない
もちろん文系向けの話題があっても大いに結構なわけで....
自分勝手に「本来は管轄外」などと宣言しても、説得力ねえよ
708デフォルトの名無しさん:2013/07/25(木) 18:19:01.25
>>706
クソとか下品な言葉な大好きな人に言われてもなあ....

何かSICPにトラウマがあるん?
709はちみつ餃子 ◆8X2XSCHEME :2013/07/25(木) 18:26:08.79
>>707
話題にすんなってわけじゃないつってんだろ。
ちゃんと読んでから反応しろよ。 もう一度 >>704 を読んでくれ。
710デフォルトの名無しさん:2013/07/25(木) 18:44:35.19
>>709

>>697
>SICP の内容そのものは本来は管轄外じゃねーの。

>>700
>そう思うんならその理由を書けよ。

完全な上から目線で「話題にすんな」って言ってる気がするけどなあ....
SICPに関してだけ、えらく過敏に反応してるように見える
自分の過去カキコを読み直してごらん
他人からは、かなり専門的なウンチクを自慢げに語っているように見えるけど気付かないのかな
(そのウンチク語りそのものを否定している訳じゃないから、念の為)

自分にとって嫌な話題であれば、華麗にスルーできる耐性が不足してるんじゃね?
単なるワガママとも言うが....
711はちみつ餃子 ◆8X2XSCHEME :2013/07/25(木) 19:12:15.24
>>710
SICP をとりあげてるのはそれが目立つからであって、私の主張は >>704 の通り。
コンピューターサイエンスに関心がない奴 (SICP を読まない奴、理解できない奴) を馬鹿にするような態度はイケてないだろって話。
普段使いの言語のひとつとして Lisp/Scheme を選ぶ奴だっていて、そういう奴も仲間だと俺は思う。
よりよく使うために SICP が役には立つのは確かだし、薦めることもあるけども。
712デフォルトの名無しさん:2013/07/25(木) 19:13:50.40
じゃあいいじゃん。
713はちみつ餃子 ◆8X2XSCHEME :2013/07/25(木) 19:17:29.06
いいよ。
714デフォルトの名無しさん:2013/07/25(木) 19:18:38.36
じゃあSICPの話を続けるか
715デフォルトの名無しさん:2013/07/25(木) 19:34:03.83
>>711
なあーんだ、結局>>697,700は他人の成り済ましだったのか
よかった、よかったw
716デフォルトの名無しさん:2013/07/25(木) 20:01:44.37
なんだいいのか
717デフォルトの名無しさん:2013/07/25(木) 20:25:19.60
CTMCPが主流になれば、SICP世代も何十年後かに絶滅してlispスレから計算機言語の概念に関する本の話題もなくなるはず。
CTMCPはどうもOzのせいで実習環境作るのに断念してしまう問題点があるらしい。
なので、Ozが簡単に動かせるようにするか、本をHaskellで書き換える人がいると、SICPの終焉に協力できる。
718はちみつ餃子 ◆8X2XSCHEME :2013/07/25(木) 20:33:39.36
間違いなく俺だけどそう判断した根拠は?
誤解が有るなら訂正したい。
719デフォルトの名無しさん:2013/07/25(木) 20:37:09.96
あの本は、利用言語が並列制約型であることに依存してる。
HaskellやSchemeで書きなおすとすると、
かなり最初の部分からDSLを使うことになって、
本の趣旨が相当捻じ曲げられてしまうと思う。
720デフォルトの名無しさん:2013/07/25(木) 20:54:29.80
>>718
壁に向かって独り言?
それとも、また誰かアンカの付け方も知らない素人の成り済ましかな?
721デフォルトの名無しさん:2013/07/25(木) 21:02:52.43
なんかまともに話し合う気なさそう
722デフォルトの名無しさん:2013/07/25(木) 21:33:41.67
>>711
>コンピューターサイエンスに関心がない奴 (SICP を読まない奴、理解できない奴) を馬鹿にするような態度はイケてないだろって話。

何か勘違いしやいないか?
コンピュータサイエンスに関心がないのに「見栄を張りたい」が為に手を出し、
自分が理解できないのを翻訳者や本のせいにする態度がイケてないだろって話なんだが。

コンピュータサイエンスに関心がある、または自己のプログラミング能力を向上させたいと
考えているヤツなら、目次や前書きくらいは目を通して買うか買わまいか真剣に考えるはず。
で、もし買ったのなら理解できないところは自分の経験不足だと考えて、
数学なり電子工学の初心者向け解説書に手を出して勉強するよ。時間はかかるがね。
そういった真面目に学ぼうとしているヤシラを馬鹿にしてやいないか?

別に普段使いの言語のひとつとして Lisp/Scheme を選ぶ奴だっていてもいいさ。
ただ、それが目的ならSICPよりももっと適した本があるだろ。
SICPが目立つのは理由がある訳で、それが目障りだからといって
執拗に叩くことを正当化する態度はイケてないと考えるよ。
723はちみつ餃子 ◆8X2XSCHEME :2013/07/25(木) 22:04:02.91
>>722
あのさー。 同じことを何度書かせりゃ気がすむんだよ。
俺は SICP を批判してるわけじゃねーし、話題にすんなとも書いてないのになんでそういう風になってるわけ?

SICP を買いたくて買った奴はそれでいいし、理解できるならそりゃ立派なことだよ。
普段使いの言語のひとつとして Lisp/Scheme を選ぶ奴に対してまで SICP を当然の知識として押し付ける奴のことを
イケてないと俺は書いてるつもりなんだがそんなにわかり難いか?
724デフォルトの名無しさん:2013/07/25(木) 22:06:45.72
ニュー速でスレが立ってた

プログラミング言語Harlanは最近、Eric Holk氏が発表した言語で、リッチなデータ構造をサポートしたGPU向けのプログラミング言語だ。Mac OS X 10.6, 10.7, 10.8とLinux系のOSで動作する。
Harlanを動かすには、Intel OpenCL SDK、NVIDIA CUDA Toolkit、AMD Accelerated Parallel Processing (APP) SDKのようなOpenCLの実装に加え、Petite Chez Schemeが必要だ。さらに、間もなく高階関数もサポートされる予定だ。
http://www.infoq.com/jp/news/2013/07/harlan

Schemeで書かれたGPU向け新プログラミング言語Harlan

2013年07月05日
 GPU向けのプログラミング言語HarlanがGitHubで公開されました。  動作にはOpenCLとPetite Chez Schemeが必要で、Mac OS X 10.6以降とLinuxがサポートで動作が確認されているそうです。
元記事URL : http://www.phoronix.com/scan.php?page=news_item&px=MTQwMzE
725デフォルトの名無しさん:2013/07/25(木) 22:10:17.64
DSLなのかな?
726はちみつ餃子 ◆8X2XSCHEME :2013/07/25(木) 22:20:41.29
どうしてオープンソースではない Petite Chez Scheme を使うのかと小一時間問い詰めたい。
727デフォルトの名無しさん:2013/07/25(木) 22:33:26.64
728デフォルトの名無しさん:2013/07/25(木) 22:41:31.87
>>723
>話題にすんなとも書いてないのに

>>710
>>>697
>>SICP の内容そのものは本来は管轄外じゃねーの。
>
>>>700
>>そう思うんならその理由を書けよ。
>
>完全な上から目線で「話題にすんな」って言ってる気がするけどなあ....

この部分を無視しているけど、どう考えているのよ?普通は「話題にすんな」と受け取るだろ。

おまけに、>>674では「>>654 がSICP の話題を出しやがるから」などと言うしまつ。
こんなこと言っておいてから、>>704,710のちゃぶ台返しで「そんなこと言ってない」と
いわれてもなあ... 成り済ましでないのなら、多重人格症なのか?感受性がない人なの?

あと、「普段使いの言語のひとつとして Lisp/Scheme を選ぶ奴に対してまで SICP を
当然の知識として押し付ける奴」のカキコってどれよ?
>>654は「SICPは名著だ」と言ってるだけで押し付けてはいないし、
その後もSICPを読むには理系(工学系)の知識が必要だね、って話は続くが押しつけじゃないし。
729はちみつ餃子 ◆8X2XSCHEME :2013/07/25(木) 22:41:46.17
https://twitter.com/sym_num/status/360374270360174594

何がいいたいのかよくわからんのでもっとくやしく。
730デフォルトの名無しさん:2013/07/25(木) 22:48:36.57
そういえば、はちみつたんは twitter やってないの?
これは別人? @honeychiaotzu
731728:2013/07/25(木) 23:01:49.94
アンカが間違っていたので、訂正する

誤) >こんなこと言っておいてから、>>704,710のちゃぶ台返しで「そんなこと言ってない」と
正) >こんなこと言っておいてから、>>704,711のちゃぶ台返しで「そんなこと言ってない」と
732はちみつ餃子 ◆8X2XSCHEME :2013/07/25(木) 23:02:42.76
>>728
> この部分を無視しているけど、どう考えているのよ?普通は「話題にすんな」と受け取るだろ。

それは言葉が足りなかったと思う。 だから >>704 で補ってるんだが。
例えばこのスレで遺伝子研究に Lisp を使いたいですとかいう話題が出たとしよう。
それはもちろんアリだろ。 わかるやつがわかる範囲で助言すりゃいい。
でも、そこで 「遺伝子の構造知らんのm9(^Д^)プギャーー」 ってなったら「ここ Lisp Scheme スレですし…」ってなるだろ。
遺伝子のことは管轄外だろ。
Lisp Scheme スレなのに、言語とは直接の関係がない SICP を読んでて当然、理解できて当然みたいにするのはちょっとちゃうやろ。

> >>654は「SICPは名著だ」と言ってるだけで押し付けてはいないし、
> その後もSICPを読むには理系(工学系)の知識が必要だね、って話は続くが押しつけじゃないし。

そいつは Scheme を解説した書籍の必要性を否定してるんだぞ。 言葉としては問い掛けという形にはしてるけど。
単に Scheme という言語を使いたいってだけの奴の道筋を否定してるように俺には取れたんだ。
733はちみつ餃子 ◆8X2XSCHEME :2013/07/25(木) 23:19:09.53
>>730
そいつは別人。
Twitter で Scheme の話題を出してる奴って少なくね?
Scheme クラスタを根刮ぎフォローしたら俺かもしれないぞ。

俺が Twitter アカウントを持ってない可能性もあるし、
持ってたとしてもでは Scheme の話題を出さないかもしれないので、
いわゆるシュレジンガーの猫。

   /l、
   (゚、 。`フ ニャーン
   」  "ヽ
  ()ιし(~)〜
734デフォルトの名無しさん:2013/07/25(木) 23:28:16.82
ハーランに対抗してコムトライヤというコンパイラを作るべきなのだろうか

stalinよりも速いの?
735はちみつ餃子 ◆8X2XSCHEME :2013/07/25(木) 23:39:02.48
>>734
用途によるんじゃないの。
並列化しやすい計算なら速くなる可能性が高いだろうし。
736デフォルトの名無しさん:2013/07/26(金) 00:01:40.34
>>732
>それは言葉が足りなかったと思う。 だから >>704 で補ってるんだが。

言葉が足りなかったのなら、前言を撤回した上で、それを直接言わなければ他人には分からんよ
>>704は言葉を補っているんじゃなくて、自己正当化の「いい訳」に聞こえた


>Lisp Scheme スレなのに、言語とは直接の関係がない SICP を読んでて当然、理解できて当然みたいにするのはちょっとちゃうやろ。

SICPはScheme解説書ではないけれど、
「理系(工学系)を題材にしてSchemeによるモデル化のプログラミング法を解説」
した、ム板のLisp Schemeスレと直接関係する本だよ
しかも「数学やら電子工学も知らんのm9(^Д^)プギャーー」とは誰も言っていないし、
題材が理系だから前提知識として必要だね、ハードルの高い本だよねと言ってるだけ
どこをどう受けとれば「SICP を読んでて当然、理解できて当然」に脳内変換されるのか、
訳がわからん


>単に Scheme という言語を使いたいってだけの奴の道筋を否定してるように俺には取れたんだ

ならば、>>654に対してそれを直接伝えればいい。それを上から目線で>>697,700みたいな
レスを返すから、「SICPを話題にするな」と受け取れられてしまう


全体を通して、コテハンを名乗るなら名乗るなりに、言葉を慎重に選ぶ大人の自覚が必要だと思う
737デフォルトの名無しさん:2013/07/26(金) 00:09:42.14
SICPもいいけどEOPLも同じくらいにいい
first edition は飯を食うのも忘れて読みふけった
738デフォルトの名無しさん:2013/07/26(金) 00:21:47.41
>>737
LISP本の中では、SICPの次に読むつもり
ある言語を理解したいと思ったなら、
その言語の処理系(インタプリタ)を書いてみるのが一番だと思う
739デフォルトの名無しさん:2013/07/26(金) 00:27:35.94
素数夜曲の著者はあとがきでこう述べている

「歴史的名著『計算機プログラムの構造と解釈』、通称「SICP」は常に傍らにあった。この著作は
演習問題の膨大さでも知られている。初学者に読み難さを感じさせる最大の要因が、問題を解か
なければ次に進めない構造、解答がそのまま次のステップで必須とされる点にあるだろう」(p.844)

また>>722,736はこう述べる

「で、もし買ったのなら理解できないところは自分の経験不足だと考えて、
数学なり電子工学の初心者向け解説書に手を出して勉強するよ。時間はかかるがね」
「題材が理系だから前提知識として必要だね、ハードルの高い本だよね」

練習問題を飛ばして読み進めて頓挫する文系プログラマは後を絶たない
今回のやりとりはかれらへの福音となるであろう(文系しるす)
740デフォルトの名無しさん:2013/07/26(金) 00:43:10.93
>>724
自由度が高そうに見えるが、裏の原理とかに結構気を配ってコードを書かないと、
GPUの性能が台無しなコードになっちゃうじゃないかね。
それともコンパイラが上手く良きに計らってくれるのかね。
741はちみつ餃子 ◆8X2XSCHEME :2013/07/26(金) 01:12:09.56
>>736
俺の文章ではわかりやすく言い方は誇張したけど、 >>662 とか >>671 みたいな奴はいてるやん。

それと、繰り返しになるけど、 SICP はこのスレでよく出てくるから取り上げただけだかんね。
Scheme (Lisp) が小難しいサイエンスと強く結び付いていてそれの理解が必須であるかのように言ってる奴はこのスレにいるだろ。
背景としての理屈はあるけど、それを理解できなくても理解できないなりに Scheme は使えるんだから、
変にハードルを上げるようなまねをして欲しくないってだけなんだよ。
742デフォルトの名無しさん:2013/07/26(金) 06:22:49.88
伸びてると思ったらなんだこれ?
lispのこと語ろうよ。
743デフォルトの名無しさん:2013/07/26(金) 07:28:19.59
>>733
  ヘ_ヘ
 ミ ・ ・ ミ
  ( °  )〜
744デフォルトの名無しさん:2013/07/26(金) 07:36:13.09
このスレは「Lisp Scheme」スレなわけだし、
多少はブレたり雑談をまじえたりはするにせよ、
SICPについて話すべきかどうかは本来は管轄外じゃねーの。
745デフォルトの名無しさん:2013/07/26(金) 08:38:26.20
Schemeでの並列処理はどの程度、研究されてるんだい?
2010年代にはcorei100なんてのが出現しそうな勢いだが。
746デフォルトの名無しさん:2013/07/26(金) 10:50:45.96
>>724
Connection Machine Lispきたー
懼ァアLispきたー

> さらに、間もなく高階関数もサポートされる予定だ。

デジャブ

>>745
ファーストクラスの継続がないとSchemeとは言えないと思うが、
SIMDっぽい並列とScheme的継続をうまく整合させるのは難しい。
独自になるなら最初から俺Lispとなるのだと思う。
>>724は高階関数すらまだなくSchemeとしてはレアケースだろう。
747デフォルトの名無しさん:2013/07/26(金) 12:07:42.20
> インディアナ大学の博士課程で学ぶエリック・ホーク
元ザ・シンキング・マシン、コネクション・マシン関係の人というわけではなさそうだ。
748はちみつ餃子 ◆8X2XSCHEME :2013/07/26(金) 13:36:52.36
R7RS では低レベルマクロは large の方に入るの?
small に syntax-rules (高レベルマクロ) が有って large に低レベルマクロってなんか変じゃね?
749デフォルトの名無しさん:2013/07/26(金) 16:08:32.17
syntax-caseを使って別のfrontendを書く、
こういう機能は最小仕様には必要ないという考え方だろう。
750はちみつ餃子 ◆8X2XSCHEME :2013/07/26(金) 20:14:22.82
そういう話じゃなくて。
低レベルな方をコア (small) に入れて高レベルな方をライブラリ (large) にするのが筋じゃねってことを言いたいんだけど。
751デフォルトの名無しさん:2013/07/26(金) 20:22:39.26
SchemeはEuLispじゃない
752はちみつ餃子 ◆8X2XSCHEME :2013/07/26(金) 20:34:13.35
そうか。
753デフォルトの名無しさん:2013/07/27(土) 00:09:56.17
http://cl-www.msi.co.jp/reports/strange-function.html
地道にアセンブラコード調べてアプリケーションプログラムをチューニングしてんだな。
clojureもcoreな部分で高速化頑張ってるけど、javaや同じイミュータブルなデータ構造を持つscalaと比べて等速までもってくのはなかなか難しい
754はちみつ餃子 ◆8X2XSCHEME :2013/07/27(土) 00:54:46.21
R7RS large に低レベルマクロが入るとしたら explicit renaming か syntactic closure のどっちだと思う?
755デフォルトの名無しさん:2013/07/27(土) 01:31:17.58
いっそのこと両方入れればいいんじゃない
756はちみつ餃子 ◆8X2XSCHEME :2013/07/27(土) 02:00:54.12
ですよねー。
757デフォルトの名無しさん:2013/07/27(土) 05:17:55.70 ID:qgSkmMC6!
>>745
SchemeでFutureとか研究されてたのが20年くらい前だよ。
Lispと違ってSchemeだと並行計算に継続をどう絡めるかって話が多かったかな。
http://library.readscheme.org/page9.html
758デフォルトの名無しさん:2013/07/27(土) 15:13:09.22
Schemeで型情報を追記する場合の標準ってありますか?
CLにあわせたdeclareにした方が違う処理系でも取り込みやすいのでしょうか
759はちみつ餃子 ◆8X2XSCHEME :2013/07/27(土) 16:21:07.90
標準と言えるほど確立したものはないと思う。
Typed Racket あたりがまぁまぁ先駆的なんじゃね。

取込みやすいってのがどういうことを言ってるのかよくわからん。
760デフォルトの名無しさん:2013/07/28(日) 22:04:33.11
>>755
その方針でいくと将来的にCommon Lisp以上のモンスターが誕生するんだが。
761はちみつ餃子 ◆8X2XSCHEME :2013/07/28(日) 22:10:29.39
>>760
> http://ccil.org/~cowan/scheme-2011-09.pdf
> A fully equipped R7RS-large system will almost certainly be larger than Common Lisp

完備された R7RS large システムはほぼ確実に Common Lisp より大きくなります。
762デフォルトの名無しさん:2013/07/28(日) 22:13:41.34
マジか、、scheme は一体何処に向かってるんだ?
763デフォルトの名無しさん:2013/07/28(日) 22:17:09.96
Common Lispは言語仕様とライブラリ仕様が、
一冊の本にまとめられてるから大きく感じるだけで、
今やpython(および標準で配布されるライブラリ)とあまり大差ないくらいでしょ。
ワンパック実行/開発環境としてのJava JRE/JDK、
標準ライブラリ規約としてのJCPと比べるともの凄く小さい。
764デフォルトの名無しさん:2013/07/28(日) 22:17:13.28
マジか、、scheme は一体何処に向かってるんだ?
765デフォルトの名無しさん:2013/07/28(日) 22:17:43.80
すまん、二回送られてしまった
766デフォルトの名無しさん:2013/07/28(日) 22:18:55.25
ライブラリも含めて標準化するのにCommon Lisp仕様より小さかったら話にならない。
767はちみつ餃子 ◆8X2XSCHEME :2013/07/28(日) 22:24:34.70
R7RS large が制定されて処理系も充実するようなら、
もしかすると Common Lisp が担ってきた分野の一部を Scheme が食うことになるかもな。
処理系の信頼性っていうのは実績で判断されるからそう簡単ではないだろうけど。
768はちみつ餃子 ◆8X2XSCHEME :2013/07/29(月) 00:21:04.33
前スレで Common Lisp の関数群は標準ライブラリではないっていう指摘があったな。
http://www.logsoku.com/r/tech/1348018916/321

Scheme でも同じだけど、 Lisp ってどれがプリミティブ (コンパイラ自身が特別なものとして認識する語彙) で
どれが標準ライブラリなのかっていうのは区別しづらいよな。
例えば Scheme の規格の後の方にあるマクロ使用例には lambda にマクロをかぶせて let を作る例は載ってるけど、
let から lambda を作ることも出来て規格上はどっちでも問題ない。
どちらがプリミティブであるべきかっていうのは意味付けの仕方によって変わってしまう。
(実装上は大抵の処理系が let を特別扱いしている。)

R6RS だとプリミティブな機能だろうが何だろうがライブラリは名前の束を管理するようになってるのを見て
こういうやりかたもあるのかとちょっと感心した。
define とか lambda とかいう基本的な機能も (rnrs base (6)) に属してる。
C で言えば for とか struct とかをモジュールに分けるみたいなもんだから、こりゃ Lisp でなきゃ出来んわと思った。
769デフォルトの名無しさん:2013/07/29(月) 01:02:33.37
ライブラリが含まれるから仕様が大きくなるとかそういうのじゃなくって、
良く吟味しないで仕様をガンガン入れると、仕様も無駄にデカくなるわレガシーなAPI引き摺ることになるわ、
Common Lispなんて目じゃない惨状を招くよ、って話なんだけど。Schemerってそういうの嫌いじゃなかったの?
770デフォルトの名無しさん:2013/07/29(月) 01:11:22.20
R6RS Recordsとか、最近だとSRFI-106あたりのグダグダっぷりを見てると、
R7RS largeを本当にまとめきれるのかはかなり疑問。
ERR5RSみたいなのが出てくることにならなきゃいいけど。
771はちみつ餃子 ◆8X2XSCHEME :2013/07/29(月) 01:25:07.01
>>769
低レベルマクロに関して言えば既にかなり議論されてて、
それでもなおどちらが相応しいとは言えないという感じなので、 >>755 の意見はそれを踏まえてのものだと思う。

R7RS large 全体に関して言えばもちろん長い時間をかけて検討すべきだよ。

他にもある程度煮詰ってる機能でも本質的な機能じゃないからとかなんとかで
規格に入れるには至ってないものもあったりするので、
そういうのは過去の議論を踏まえて比較的短い検討時間で済むんじゃないかな。

ソケットまわりなんかは POSIX のモデルをそのまま受入れるのなら話は早いんだが、
そういう前提を嫌う人は絶対いるからかなりもめそう。
772デフォルトの名無しさん:2013/07/29(月) 09:08:47.78
ソケット、この時点で既にBSD由来のAPIモデルです。
773デフォルトの名無しさん:2013/07/29(月) 09:10:13.99
>>769
古いものは捨てて新しくすればいいんだよ。
deprecatedのない仕様は生きてない仕様。
774はちみつ餃子 ◆8X2XSCHEME :2013/07/29(月) 09:48:17.09
>>772
へー。 そうなのか。

でも、 Scheme としての API (インターフェイス) を決めるとなると、
イベントとかスレッドとかのモデルとも関係してくるんじゃないのかな。
非同期 I/O の枠組みを挟むべきかどうかとか、考えるときりが無いというか、
他の諸々との連携で考えるべきことは多そうに思う。
775デフォルトの名無しさん:2013/07/29(月) 09:53:03.68
>>773
>>769が懸念しているのは、Scheme作者様本人が書かれた文書にある
Schemeコミュニティの伝統的精神が変化しつつあることではないのだろうか?

 ==== Scheme 過去◇現在◇未来 ====

 Schemeコミュニティはとてもフレンドリーです。ほとんど彼らはコンセンサス
 で合意してきました。Revised reportの作業をしていたときの委員会の大原則
 は、「もし変更が提案された場合、誰かがnoと言ったらそれは入れられない」
 ということでした。別の言い方をすると、誰もがそれに同意しないと直さない。
 これは言語を小さいものに保ちます。

 これとCommon Lispコミュニティと比べてもいいかもしれません。Common Lisp
 はフレンドリーではないとも言えるでしょう。コンセンサスで動くのではなかっ
 た。5年間私は委員長をしていました。論点の調停をしていました。それは私の
 一生でもっとも困難な仕事でした! Common Lispでの原則は、「変更が提案され
 るとき、誰かがyesと言うとその機能は言語に入れられていきます!」だから、
 Common Lispは大きくなりました。

ttp://www010.upp.so-net.ne.jp/okshirai/scheme-20070402222203.txt
776はちみつ餃子 ◆8X2XSCHEME :2013/07/29(月) 11:28:21.31
>>775
どうだろう。 Scheme の「規格」はいつもコアとなる「言語」しか決めようとしなかった。

でも、コミュニティとしてはライブラリが無くていいと思ってたわけじゃなくて、
(実際、規格の範囲内で出来ることが限定的すぎて)
srfi なり処理系の拡張なりで勝手にやるよっていう雰囲気だっただけじゃん?
(その文書の当時はまだ srfi は無かったはずだけど)
言語コアについて一段落した今、ライブラリを拡充しようとするのが Scheme の精神に反するとは言えないんじゃないかな。
そのライブラリについて誰もが納得するまで議論を尽すのでなければ Scheme の精神に反することになるだろうけど。
R6RS に批判が集中したのも拙速すぎて議論が尽されてなかったからこそだし。
777デフォルトの名無しさん:2013/07/29(月) 12:09:29.38
Steeleは自分がただ一人のまとめ役だったから、
(それを反映してCLtLはSteele単独の著作になってる)
Common Lispについてはちょっと大げさに言ってるだけ。
本人はもっと過去の互換性を切り捨てて
設計した方が良かったと今では思っているので。
何でも入れられたってことはない。

lexical scopeのように、反対は大きかった関わらず、他は捨ててものもある。
そもそも初期は委員会じゃないし、
委員会になってからもCLOS関連は実際的なOOPSは何も入れずに、
カーネル言語であるCLOSだけ入れることで決着付けた。
778デフォルトの名無しさん:2013/07/30(火) 00:05:38.06
cffiはどの処理系も似たようなものだけど
Schemeを逆にCから使うばあいのffiも統一してくれないものか
779デフォルトの名無しさん:2013/07/30(火) 01:27:19.80
>>773
そうしてPHP並に互換性の概念のない言語が誕生するんですね。

極論はさておき、Pythonとか見てると弊害が実に良く分かると思う。
利用人口少ない言語であんなことやったらマジ自滅。
780はちみつ餃子 ◆8X2XSCHEME :2013/07/30(火) 01:30:39.02
あまり大幅に変えるならいっそ別の名前を付けろとよく思う。
781デフォルトの名無しさん:2013/07/30(火) 05:47:22.81 ID:nYdZBhbg!
Racket 「呼んだ?」 >>780
782デフォルトの名無しさん:2013/07/30(火) 08:54:39.10
>>779
Javaはちゃんとこなしてるよ。
Pythonもメジャーバージョンアップはメリハリ付けてて問題ない。
783デフォルトの名無しさん:2013/07/30(火) 20:48:39.94
>>782
>Pythonもメジャーバージョンアップはメリハリ付けてて問題ない。
えー?
ruby並に酷いと思うんだけど。

少なくともJVMとかCLIのVMベースでここまで酷いのないし,CLはCLtLみたしてるし。
Schemeがひどいのは規格外の部分だし(そのせいで酷い目にはあったけど)
784デフォルトの名無しさん:2013/07/31(水) 10:54:26.42
すいません、ここでGIMPのscript-fu(基本はR5RS準拠)について質問してもいいですか?
ソフトウェア板のGIMPスレは主にソフトの使い方についてなので。

二度手間にならないように質問を書かせてもらいます。
スレ違いならスルーでお願いします。

script-fu では
gimp-image-get-name, gimp-layer-get-opacity などの画像の状態を取得する関数があるのですが
返す値が1つであっても必ずリストで返ってくるため car で取り出さないといけません。

このような時にマクロを使って

g-image-get-name のような g-* という関数があれば、
それぞれに対応する元のgimp-から始まる関数を呼び出して、
返り値のリスト内の要素が1つであれば、リストではなく中の値だけを返す。

という処理は可能でしょうか?
可能ならどうすればできるのか教えて頂けないでしょうか。
785はちみつ餃子 ◆8X2XSCHEME :2013/07/31(水) 12:40:12.28
ググって調べてみたら script-fu は TinyScheme ベースなんだね。
GIMP をインストールするのはダルいのでとりあえず TinyScheme で動くように書いてみたけど、大丈夫かな?
もしかすると script-fu は古い TinyScheme をベースにしてたり制限されてたりしてて動かないかも?

(macro (define-car-only-proc sym)
`(define
,(let ((str (symbol->string (cadr sym))))
(if (and (>= (string-length str) 5)
(= 5 (do ((i 0 (+ i 1)))
((or (= i 5)
(not (char=? (string-ref str i)
(string-ref "gimp-" i))))
i))))
(string->symbol
(string-append "g-" (substring str 5 (string-length str))))
(string->symbol (string-append "g-" str))))
(lambda arg (car (apply ,(cadr sym) arg)))))

これを使って

(define-car-only-proc gimp-image-get-name)

とすると g-image-get-name が定義されるよ。
元の変数の名前に gimp- という接頭辞が付いていたらそれが g- に付けかえられて、
それ以外の接頭辞だったら元の変数名の頭に g- を追加したものが新しい手続きの名前になるようにした。

もしも Ruby で言うところの method_missing みたいなのを期待しているのなら、それは無理だと思う。
786デフォルトの名無しさん:2013/07/31(水) 13:37:37.42
え!?Lispってなんでもできるんじゃないの!?
787デフォルトの名無しさん:2013/07/31(水) 13:59:58.39
>>784 こんなのはどうだ?マクロじゃなくて関数だが

(define (g fn . sym)
(let ((lst (apply fn sym)))
(if (= 1 (length lst)) (car lst) lst)))

;; 使い方
(g gimp-image-get-name) ;=> 結果が1要素ならリストじゃなくて中の要素を返す。
(g gimp-layer-get-opacity)
788デフォルトの名無しさん:2013/07/31(水) 16:33:07.30
Racket を使っています。
raco planet install コマンドでライブラリをインストールしたのですが、
インストールしたライブラリをプログラムに import する方法がわかりません。

require 構文でなら (require (planet ebellani/cyclic-redundancy-check:1:2)) といった要領で出来るのはわかっているのですが、
R6RS モードの import 構文での相当する記述方法を教えて下さい。
宜しくおねがいします。
789デフォルトの名無しさん:2013/08/01(木) 09:19:58.43
>>788

Racketやめて、Gaucheにしなはれ。Shiroさんが丁寧に教えてくれるよ。
790788:2013/08/01(木) 10:28:28.42
>>789
普段は Gauche を使うことが多いです。
今回は Gauche 用に作ったライブラリを Racket へ移植しようとしているところなんです。
Gauche が優秀なのはよくわかっていますが、万能というわけでもないので。

IRC の方で質問しても racket モードならスムーズだとか言われて、そんなことは知っとんやと小一時間問い詰めたい。
(けど英語が下手くそ過ぎるので出来なかった。)
791デフォルトの名無しさん:2013/08/01(木) 15:44:02.72
racket のことはオレはわからんけど(スマヌ)、gauche の足りないところはぜひ書いといてくれ
792デフォルトの名無しさん:2013/08/01(木) 18:29:31.64
http://docs.racket-lang.org/r6rs/libpaths.html
#!r6rs
(import (rnrs lists (6))
(rnrs base (6))
(rnrs io simple (6)))
とかそういうこと?
793788:2013/08/01(木) 20:05:38.41
>>792
そう。 <import spec> で言うとどうなるのかを知りたいのです。

chicken で言う egg とかと同じように Racket のライブラリを集約した Planet というリポジトリあって、
raco コマンドひとつでインストールが出来る仕組があります。
で、それでインストールしたライブラリは #lang racket なら require 構文を使って指定することで使えるようになるんですが、
planet のライブラリを表わす専用の構文が require のサブフォームにあるんですよ。
http://docs.racket-lang.org/reference/require.html?q=require#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._planet%29%29
つまり、 Planet から入れたライブラリは Racket の中で特別扱いを受けてます。

ですが、もちろん R6RS の import ではそういった「特別扱い」を表現できないので、どうしたもんかなと。
794788:2013/08/01(木) 20:50:10.80
>>791
私が Racket が Gauche より良いと感じている部分はライブラリの多さです。

ライブラリの量については足りないからと言って簡単に増やせるわけでもなく、
地道に蓄積するしか仕方ない話なので、
私自身もまとまった機能が作れたら小さなものでも公開するようにしています。
github に置かれているライブラリ等もありますが、
github には初心者が本を見て写経したコード等もたくさんあって紛れてしまうので、
ライブラリ作者の方や、良いライブラリを見付けた方は WiLiKi にある Gauche:Packages のページに
なるべく書いて頂けるとありがたいです。
795デフォルトの名無しさん:2013/08/01(木) 23:59:56.81
>>794
なるほど、ライブラリか。確かに、Racket いろいろ持ってるね。
Racket サイトつらつら見てみたけど、相当な人的リソースが突っこまれてる印象。
2D-plot 周りとか地味に欲しいと思った。
796788:2013/08/02(金) 00:33:24.20
>>795
そのライブラリを管理するツール類やサポート体制にも違いがありますね。

ライブラリを扱うツールに関してですが、
Gauche では適切にパッケージしたライブラリは gauche-package コマンドひとつで
ダウンロードからインストールまで出来るようになっていますが、
これは configure やら make やらを自動で呼出すというものに過ぎず、
Windows では MinGW/Msys を事前に導入しておく必要があります。
C で書かれたコードが含まれないパッケージであってでもです。
これは Gauche を使いたいだけの人にとってはちょっとしたハードルです。
また、ライブラリの情報が集約されてないので、
依存関係の解決を自動化することも出来ていません。

とは言うものの、これは Gauche の意図的な選択だと思います。
Gauche のライブラリはバインディングが多く、
どうせ gcc とか開発環境は要るんだからもう頼っちゃえよという感じじゃないでしょうか。

Racket みたいに自前でパッケージ管理する機能を持つようになると、
Windows でも Unix 系 OS でも同じように使えて便利ではあるんですが、
OS の機能と衝突して混乱することがあるんですよね。
確か debian のメンテナが Ruby に文句言ってたことがあったように思います。

それぞれにメリット/デメリットがあり、
Racket と Gauche の方針の違いは両立できないでしょう。
私が >>790 で Gauche のことを「万能というわけでもない」と述べたのは、
Racket が万能ではないのと同様に Gauche もそうだという意味であって、
Gauche が Racket と比べて一方的に足りてないという意味ではないです。
Racket には日本語の情報が足りてない!!
797デフォルトの名無しさん:2013/08/02(金) 13:37:17.68
>>785>>787
回答ありがとうございます。
Rubyの場合はmethod_missing というのを使っているんですね。
そちらも知らなかったので勉強になりました。

はちみつ餃子さんと>>787さんのコードを合わせて
-(lambda arg (car (apply ,(cadr sym) arg)))))
+(lambda arg (g apply ,(cadr sym) arg))))

として全部の関数を再定義して見ることにします。
798デフォルトの名無しさん:2013/08/02(金) 14:46:49.20
>>785
このif式意味なくね?返り値捨ててるし。
799はちみつ餃子 ◆8X2XSCHEME :2013/08/02(金) 14:59:54.33
>>798
識別子の頭に gimp- が付いてるかどうかで挙動を分けるのに使ってるし、
機能してると思うけど。
800デフォルトの名無しさん:2013/08/02(金) 17:19:10.27
日本語くらいしか自然言語を使えない俺にracketは厳しいかな
801デフォルトの名無しさん:2013/08/02(金) 17:23:08.53
>>799
すまんこ
返り値はdefineの第二項なるんだな
802788:2013/08/02(金) 20:06:47.72
Racket で驚いたことがあります。 deflate が Racket で書かれてるんですね。

ドキュメントを見たら圧縮レベルとかのオプション指定が全くできなくて、
「どうせ zlib のバインディングなんだろ? インターフェイスを付けりゃいいだけなんだから手抜きすぎだろ」
と思ったら手抜きどころかまるっと Racket で書かれててむしろ要らん手間かけてました。

実用よりも Scheme (をベースとした言語) の可能性を突き詰めようとするところに漢気を感じますね。
803デフォルトの名無しさん:2013/08/02(金) 23:22:24.61 ID:9ukL9ka4!
pure schemeなdeflate/inflate実装ならsnowにもあるでよ。
つまりメジャーなR5RS処理系なら使える。
http://snow.iro.umontreal.ca/?tab=Packages
(zlibって名前だけど中身はScheme only)
しかしsnowも流行らなかったなあ。やっぱり各処理系がそれぞれがんばるしかないのか。
804デフォルトの名無しさん:2013/08/02(金) 23:54:58.49
schemeで擬似的にname space 使おうとするなら関数名を
name:space
name::space
どっちがいいのだろう
型情報にname:typeみたいなの使う処理系みた記憶あるから
name::spaceの方がいいような気もするけど
name:space使ってる人を見かける回数が多い
805デフォルトの名無しさん:2013/08/03(土) 00:06:16.98
schemeで書く漢気があるのは良いけど、オリジナル以下の機能じゃダメな気が
806デフォルトの名無しさん:2013/08/03(土) 01:16:02.16
普段何かを作るときにEmacs以外でLisp方言を使ってる人いるの?
もしそうだとしたらどの方言のどの処理系でどういうライブラリを使ってどういうふうに開発してるかを参考にしたい
807デフォルトの名無しさん:2013/08/03(土) 02:23:02.46
Common Lispの
some
every
に相当するものは
Schemeにはないのでしょうか
808はちみつ餃子 ◆8X2XSCHEME :2013/08/03(土) 07:59:59.91
>>807
R6RS なら exists と for-all かな。
SRFI-1 には any と every がある。
809806:2013/08/06(火) 13:18:11.58
誰も答えてくれないという事はやっぱり使ってる人はいないのか
RubyやPythonの方が扱いやすくてライブラリや情報も豊富だからかな
810デフォルトの名無しさん:2013/08/06(火) 13:56:48.44
> Emacs以外でLisp方言使っている
これはどういう意味?

Emacs以外って、Emacs以外のlisp組み込みツールのこと?
811デフォルトの名無しさん:2013/08/06(火) 14:01:59.27
emacs lisp以外のschemeやcommon lispのことです
812はちみつ餃子 ◆8X2XSCHEME :2013/08/06(火) 14:06:49.97
>>809
とりあえず Github に有った Lisp 系言語のプロジェクトの数を数えてみた。

Emacs Lisp 14052
Clojure 12633
Common Lisp 5041
Scheme 3132
Racket 1709
Arc 89
CLIPS 24

総計で 36680 だから、これだけ全部合わせても Ruby の 404243 に比べれば高々 1 割ではあるものの、充分に多い数だと思うがな。
回答がないのは質問が漠然としすぎだからじゃね。 俺も何を言っていいのかわからん。
813デフォルトの名無しさん:2013/08/06(火) 14:11:40.40
>>812
自分がそれで何を作ってるか聞きたかった
814デフォルトの名無しさん:2013/08/06(火) 14:12:27.57
あと自分が有用だと思うライブラリとかかな
なんか情報が散らばっててよくわからないというか
815はちみつ餃子 ◆8X2XSCHEME :2013/08/06(火) 14:44:31.31
どんなライブラリがあるかということについてまとまっているところを挙げるとすると

Emacs Lisp http://marmalade-repo.org/
Clojure https://clojars.org/
Common Lisp http://www.quicklisp.org/beta/releases.html

Scheme は互換性の問題で、各処理系に分かれちゃってる感じ。

Racket http://planet.racket-lang.org/
Chicken Scheme http://wiki.call-cc.org/chicken-projects/egg-index-4.html
Gauche http://practical-scheme.net/wiliki/wiliki.cgi/Gauche:Packages
816デフォルトの名無しさん:2013/08/06(火) 15:14:15.71
はちみつ餃子がlispで何を作ったか教えてくれたらもっと嬉しい
817はちみつ餃子 ◆8X2XSCHEME :2013/08/06(火) 15:18:11.16
身バレするので書けませぬ。
818デフォルトの名無しさん:2013/08/06(火) 15:25:23.80
Lispの知識ばかりあるだけで実際になにか作ったというのは全然見ない
だからLispは言語としては柔軟でどの言語よりも優れてると言われても
実用的なものは作れないんじゃないかなと思ってる
それを払拭してほしくて作ったものを教えてとみんなに聞いたんだけど全然答えてくれない
だから3行目が否定されなくてLispで実用的なものは作れないが真になってしまう
819はちみつ餃子 ◆8X2XSCHEME :2013/08/06(火) 15:40:10.90
https://github.com/search?l=Common%20Lisp&q=%22%22
https://github.com/search?l=Scheme&q=%22%22

これが全然見えてないか、全て実用的じゃないように見えてるのか、煽りたいのか、どれ?
820デフォルトの名無しさん:2013/08/06(火) 15:42:01.57
Lispでは実用的なものは作れないと信じたいだけです
821デフォルトの名無しさん:2013/08/06(火) 15:52:05.46
>>819
見えてなかった、すみません

>>820
Lispは素晴らしいと思うよ、本当に
822デフォルトの名無しさん:2013/08/06(火) 16:17:08.12
理論的なものを嫌ってる人ほど頭でっかちだよね
823デフォルトの名無しさん:2013/08/06(火) 18:10:25.30
身内に書き込みを冷やかされるだろw
824デフォルトの名無しさん:2013/08/06(火) 19:34:05.64
和田本買ってきた
パラパラめくってみたけど、2章の図形のライブラリってあるの?
825はちみつ餃子 ◆8X2XSCHEME :2013/08/06(火) 20:01:00.80
>>824
例えばここには Gauche の OpenGL バインディングを使う例が置いてあるね。
http://d.hatena.ne.jp/higepon/20060426/1145547441
826はちみつ餃子 ◆8X2XSCHEME :2013/08/06(火) 20:02:28.00
【悲報】 SICP 日本語版絶版
https://twitter.com/eiitiwada/status/364698039102873602
827デフォルトの名無しさん:2013/08/06(火) 22:12:34.01
SICP はおれの心の中で生き続ける!
828デフォルトの名無しさん:2013/08/06(火) 22:20:32.21 ID:DXkUTaWQ!
>>806
古典AIをスクリプトとして扱う組み込み機器で使われてるんじゃないの?
あのほら動く掃除機とかCADとか。
>>818
最初はgimpもcadもlispで書かれていた
829デフォルトの名無しさん:2013/08/06(火) 22:21:28.82
>>828
海外にいるのか?
830デフォルトの名無しさん:2013/08/06(火) 22:22:24.75 ID:DXkUTaWQ!
だから、英語版をそのまま読めって
英語を読める方が、そこらの似たり寄ったりなプログラム言語の文法覚えるよか遥かに重要だから
831デフォルトの名無しさん:2013/08/06(火) 22:25:21.20
>>826
絶版かー
講義で買わされたことに感謝しておこ
832デフォルトの名無しさん:2013/08/06(火) 22:29:23.67 ID:DXkUTaWQ!
>>829
就職が決まらずに海外を放浪しようと、海外のProxyサーバーを利用していようと、海外へ留学してようと、仕事で来ていようと、それが何か?
>>831
Amazonなりスラドなり邦訳版って色んな場所で叩かれまくってなかった?
833デフォルトの名無しさん:2013/08/06(火) 22:41:18.75
叩かれてたけど俺は普通に読めたからどうでもいい
834デフォルトの名無しさん:2013/08/06(火) 23:02:40.09
>>828
gimpのscript-fuは今でもtiny schemeでしょ。
上にそのものの関連質問があるけど。
835デフォルトの名無しさん:2013/08/06(火) 23:06:08.09
gimp の scheme のマニュアルとかどこにあるでしょうか
実行環境も含めて解説してるページとかないでしょうか
836デフォルトの名無しさん:2013/08/06(火) 23:21:44.61
837デフォルトの名無しさん:2013/08/06(火) 23:28:38.41
日本語…
838デフォルトの名無しさん:2013/08/06(火) 23:32:03.85
Gimp本体全部を起動しないとダメなのか
xcfファイル100個くらいの画像サイズを一気に変更する方法とかあったら知りたい
839デフォルトの名無しさん:2013/08/07(水) 01:09:54.35
>>838
スレチだが、irfan viewやimage magikとかならできるかもね
840 ◆QZaw55cn4c :2013/08/07(水) 05:30:44.51
>>826
オリジナルは CC BY-SA 3.0で公開されているから wikisource に写経することが可能では?

CC-BY-SA
SA: Share Alike ? If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.
841デフォルトの名無しさん:2013/08/07(水) 07:04:19.12
>>840
そうかやってくれるか、頼んだぞ。
842デフォルトの名無しさん:2013/08/07(水) 08:07:23.09
>>826
マケプレで値上がりしたら売り飛ばすか。
843デフォルトの名無しさん:2013/08/07(水) 09:43:40.34
>>838
ImageMagik+シェルスクリプトで瞬殺だな。
844デフォルトの名無しさん:2013/08/07(水) 23:23:38.34
これまでも、「版元品切れ重版未定」の事実上の絶版だったんでしょ?
845デフォルトの名無しさん:2013/08/07(水) 23:33:18.98
絶版の場合は著作権とかどうなるんだろうか
846デフォルトの名無しさん:2013/08/08(木) 00:24:13.93
よっしゃー
みんな(俺以外)で翻訳してウェブにうpしちゃおうぜ
847デフォルトの名無しさん:2013/08/08(木) 00:38:38.93
>>843
それじゃ夢がないだろ、そこはlispでなんとかしよう
848デフォルトの名無しさん:2013/08/08(木) 01:16:34.33
>>845
別にどうもならない
849はちみつ餃子 ◆8X2XSCHEME :2013/08/08(木) 01:24:19.37
>>840
なんかよくわかんないんだよなー。
独占翻訳権の契約をしておきならが CC BY-SA 3.0 でも公開してたわけだろ。
デュアルライセンスってことなのかな。
850 ◆QZaw55cn4c :2013/08/08(木) 02:39:50.36
>>845
それでも著作権
851 ◆QZaw55cn4c :2013/08/08(木) 02:52:09.26
>>849
'transform' に translate を含むか含まないか‥‥でしょうね。
語学は苦手だし独露の翻訳家を尊敬する私としては翻訳者の著作権は尊重されるべき、と >>840 とは裏腹な想いではありますが。
春樹は「翻訳は極致としての精読」だったかな、そんなことをいってはったこともあるし、これは頑張る価値があるのかもしれません、未だに末尾再帰ですらよくわかっていないらしいし。
852デフォルトの名無しさん:2013/08/08(木) 03:20:47.36
Lego マインドストーム
の新しいのが来月でるけど
GaucheやRacketから使えるようにならないかな

旧版のマインドストームでCommon Lispはあるみたいだけど
853デフォルトの名無しさん:2013/08/08(木) 03:35:56.77
http://www.youtube.com/watch?v=tq5fxkhozKM
こういうのambで制御したら面白いと思うんだけどなあ
854デフォルトの名無しさん:2013/08/08(木) 04:47:39.12
>>851
含むに決まってるじゃん。
承知のうえで翻訳してるんだから問題ない。
自分もGPL(GFDLではなかった)の本を翻訳したことがある。
訳本として売ったけど、翻訳後のソースもtexinfoフォーマットで出版社が公開していた。
それでも本が売れて印税は入ってきた。
855 ◆QZaw55cn4c :2013/08/08(木) 06:35:06.37
>>854
独占翻訳権=翻訳権の排他的利用許諾契約、はどうされたのですか?
856デフォルトの名無しさん:2013/08/08(木) 08:54:59.15
独占してない。
857デフォルトの名無しさん:2013/08/08(木) 12:06:52.09
ピアソンの技術書は書店在庫限りとの見通し。ピアソン桐原社がピアソングループ離脱で(追記あり) − Publickey
http://www.publickey1.jp/blog/13/post_233.html
このピアソンってまさかsicpの訳本の出版社?
だとするともう絶望的なんじゃ…
858デフォルトの名無しさん:2013/08/08(木) 12:27:10.55
桐原に吸収される前の、ピアソンエデュケーションのだったサイトで、
8月1日付けで新会社「ピアソン・ジャパン株式会社」がアナウンスされてる。
ttp://www.pej-hed.jp/info/new_items/1.html
書籍案内とか昔のまま存在してるけど、今後の詳細はやはり不明。
859デフォルトの名無しさん:2013/08/08(木) 13:22:30.95
http://www.hh.iij4u.or.jp/~sib-tom/Titlpg.html
アジソン ウェスレイ・トッパンが2000年に解散した時も、いったん絶版したような気がする。

アジソン ウェスレイはピアソンに買収されたはず。
http://ja.m.wikipedia.org/wiki/ピアソン_(企業)
860デフォルトの名無しさん:2013/08/08(木) 14:01:08.62
その時も、ピアソンのシール貼って発売再開となった本もあれば、
そのまま消えた本もあった。
861デフォルトの名無しさん:2013/08/08(木) 16:37:22.80
そうだったのか
知らなかった
862デフォルトの名無しさん:2013/08/08(木) 21:17:25.29
>>852 言い出しっぺの法則、あとよろしく
863デフォルトの名無しさん:2013/08/08(木) 22:32:30.48
>>857
ANSI Common Lispとプログラミング言語SCHEMEも絶版か
864デフォルトの名無しさん:2013/08/10(土) 18:22:33.64
Lisp処理系作ってるんだけどマクロ展開をどの場面でやろうか悩んでる
仕様的にはevalの時に毎回展開してもいいのかな
865デフォルトの名無しさん:2013/08/10(土) 20:13:22.25
むしろマクロ機能を削除した処理系が欲しかったり
866デフォルトの名無しさん:2013/08/10(土) 20:53:58.90
仕様を気にするなら仕様を読めとしか…。
俺俺 Lisp を作ろうってのなら好きにやればいいし。
867デフォルトの名無しさん:2013/08/10(土) 20:58:38.93
>>866
仕様読むの面倒だから知ってる人いたら教えてほしいなと思って
868デフォルトの名無しさん:2013/08/10(土) 21:03:20.85
>>867
自分が言う「Lisp」って何のこと?
Common Lisp ?
869デフォルトの名無しさん:2013/08/10(土) 21:04:38.16
>>868
lisp-2でCommon Lispを中心にxlispとかそこら辺
曖昧だけど許して
870デフォルトの名無しさん:2013/08/11(日) 22:16:11.66
マクロ展開時に計算する場合あるから、評価の度にマクロ展開されたら嫌だな。
Lisp 族は寛容なのでCL準拠とか名乗らなければ、何でも許容される。
871デフォルトの名無しさん:2013/08/12(月) 07:25:14.13
はあ?
CLだと毎回展開してるとでも?
872はちみつ餃子 ◆8X2XSCHEME :2013/08/12(月) 08:27:28.37
>>871
そんなことを言ってる奴はいないが。
873デフォルトの名無しさん:2013/08/12(月) 08:39:41.97
うせろ
874870:2013/08/13(火) 00:09:02.82
>>871
ん?CLの場合に毎回展開している訳じゃない、ってのは当然分かってるよ。誤解を招いたならすまんが。
オレオレ処理系ならどういう仕様でも自由だ、と言いたかった。
875デフォルトの名無しさん:2013/08/13(火) 17:37:40.82
うえの方で話題になった、rubyにあるmethod_missingの件、実装してみた。
(存在しない関数を読んだ時に動的に処理する)

(defun cars () '(car cadr caddr))
(defun animals () '("dog" "cat" "elephant"))

(defun method-missing (name)
(let ((fn-str (symbol-name name)))
(if (equal (subseq fn-str 0 4) "CAR-")
(car (funcall (symbol-function
(intern (string-upcase (subseq fn-str 4)))))))))

(defmacro undefined-capable (&body body)
`(progn ,@(mapcar (lambda (sexp)
`(handler-case ,sexp
(undefined-function (var) (method-missing (cell-error-name var)))))
body)))

(undefined-capable
(car-cars)
(car-animals)
)
;=> "dog"

ただこれトップレベルでしか動かない。
(print (car-animals))も動くようにするには再起して
すべてのS式を包むしかない?いい方法あるのかな。
876はちみつ餃子 ◆8X2XSCHEME :2013/08/14(水) 01:11:29.67
>>875
知らない関数の呼出しをフックするという意味で >>785 では method_missing を引き合いに出したけど、
Ruby の場合はオブジェクトが属するクラス (とそのスーパークラス) がメソッドの集合を持ってて、
CLOS の場合はジェネリック関数がメソッドを束ねるようになってるわけだから、
mthod_missing の相当品を CLOS で言えば no-applicable-method ってことになりそう。
要するに、そこで method-missing って名前を付けてるけどそれってメソッドじゃなくね?という違和感。
いや、名前だけの話であって、どうでもいいと言えばどうでもいいことなんだけどね。

それは置くとして、私は Common Lisp のことはあまり知らないので見当違いかもしれないけど、
関数が見付からないときの処理に割り込む方法がないか HyperSpec を検索した結果、
*DEBUGGER-HOOK* というのを見付けた。 どんなもんかな。
例を見るとなんかそれっぽいことをしてるような…。
http://www.lispworks.com/documentation/HyperSpec/Body/v_debugg.htm
877デフォルトの名無しさん:2013/08/17(土) 01:49:33.16
存在しない変数名が現れるとエラーを出す前にいったんごにょごにょしてみるみたいな手法で中置記法を実現してるlisp方言がなかったっけ
878デフォルトの名無しさん:2013/08/17(土) 20:38:42.88
>>877
> InterLisp のとった方法はなかなか面白い.たとえば,
>
> (list (+ n count) n*count)
>
> という式の中で n*count が未定義変数だったとしよう.InterLisp はエラーからの
> 回復機能が優れており,エラー処理でいろんな仕事ができる.
以下略
www.nue.org/nue/tao/bitao/s005.html
879デフォルトの名無しさん:2013/08/18(日) 00:38:25.02
Lisp Schemeで画像処理する場合の標準的な方法って
pngを byte-stringとして読み込んで
byte-stringにいろいろ処理するって事でいいの?
880デフォルトの名無しさん:2013/08/18(日) 00:48:29.09
https://github.com/oetr/racket-opencv
racketからOpenCV使えるかと思ったらバグだらけだ
MacOSXではちゃんと動くのだろうか
Linuxだと最初のチュートリアルしか動かなかった
881デフォルトの名無しさん:2013/08/18(日) 09:07:06.65
evalとかloadとか使わなきゃ未定義の変数なんてコンパイル時に分かるんだから、code walker使ってマクロでやった方がLispっぽいやり方な気がする。
method_missing自体がなんでも実行時にやろうとするRubyに寄ったやり方じゃないか?
882デフォルトの名無しさん:2013/08/18(日) 14:50:42.53
何故かプログラムがフリーズしはじめ、原因を探し出すことn時間、
マクロの裏を覗きつつ、要約特定出来ました。
以下を実行するとsbcl、clisp共にフリーズします。
うまくクロージャが作れていないのはなぜなのでしょうか?
defparameterの行を消せばうまく動きます。

(defparameter *cont* #'1+)

(defun test (*cont* x)
(let ((*cont* (lambda (x) (funcall *cont* (* 2 x)))))
(funcall *cont* x)))

(test *cont* 5)
883デフォルトの名無しさん:2013/08/18(日) 15:27:18.33
CLHS: Macro DEFPARAMETER, DEFVAR
www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/mac_defparametercm_defvar.html
を読んだら分かりました。

(defparameter *cont* #'1+)

(defun test (*cont* x)
(print *cont*)
(let ((*cont* (lambda (x) (funcall *cont* (progn (sleep 1) (* 2 (print x)))))))
(funcall *cont* x)))

(test *cont* 5)

特別扱いされて、スコープがダイナミックになるんですね。
(test *cont* 5)はマクロ展開後に現れるので、
defparameterがダメとなるとletで囲むなりしないと警告を消せないなぁ。
884デフォルトの名無しさん:2013/08/18(日) 15:38:04.91
マクロ使うのやめようよ
885はちみつ餃子 ◆8X2XSCHEME :2013/08/18(日) 15:39:03.68
やだよ。
886デフォルトの名無しさん:2013/08/18(日) 16:50:52.13
マクロは最後の手段にしとこうよ
887デフォルトの名無しさん:2013/08/18(日) 16:51:46.04
いい方法無いかなと思っていたらいいものがありました。

common-lisp - REPL-Utilitiesでプロトタイピングを高速に - Qiita [キータ]
qiita.com/nitro_idiot/items/c8fe3f7136399709d250

LEX
LEXはグローバルなレキシカル変数を定義するマクロです。

(lex x (list 1 2 3))
(defun sum-of-x ()
(reduce #'+ x))

(sum-of-x)
;=> 6

(let ((x (list 1)))
(sum-of-x))
;=> 6
888デフォルトの名無しさん:2013/08/18(日) 21:07:06.86
>>883
なんで無限ループになるのかおいらにはわかりません
誰かおしえてください
889デフォルトの名無しさん:2013/08/18(日) 22:36:47.63
(defun test (*cont* x)
(let ((*cont* (lambda (x1) (print x1) (funcall *cont* (1+ x1)))))
(funcall *cont* x))
これでも無限ループになり1,2,3…と無限に数を出力し続ける
890デフォルトの名無しさん:2013/08/18(日) 22:53:25.58
多分だけど何が起こっているかというと
(defun test (*cont* x)
(let ((*cont* (lambda (x1) (print x1) (funcall *cont* (1+ x1)))))
(funcall *cont* x)))

(defvar *cont* #'1+ x 1)であるとする。
一番下のfuncallで*cont*を呼び出すと、(progn (print x1) (funcall *cont* (1+ x1)))を評価しようとする。
まず(print x1)で数字を出力する、次に*cont*を呼びだそうとする。
しかし、*cont*は動的変数(だっけ?)として宣言されているので、
今の動的な環境で見える*cont*を使う。つまりletで宣言された*cont*と呼び出す。結果として、その呼びだされた*cont*の中でもletで宣言された*cont*が呼ばれ無限ループになる。
891デフォルトの名無しさん:2013/08/18(日) 23:31:54.04
すべてのグローバル変数を確認する仕組みか、グローバル変数はlet束縛されないような仕組みを作れということか…
892デフォルトの名無しさん:2013/08/18(日) 23:43:04.55
動的な環境というのは、構文的な位置ではなく評価時の位置によって変数の値が変わるということでよいんですよね
おいらにもたぶんなんとなく理解できましたありがとう

(defvar *f*)
(let ((*f* (lambda () (funcall *f*)))) (funcall *f*)) ; => 無限ループ

(defun f (*f*) (funcall *f*))
(f (lambda () (funcall *f*))) ; => 無限ループ
893デフォルトの名無しさん:2013/08/19(月) 00:00:03.35
ここschemeスレだよね
894デフォルトの名無しさん:2013/08/19(月) 00:03:38.44
え?
895はちみつ餃子 ◆8X2XSCHEME :2013/08/19(月) 08:08:32.35
>>893
Lisp 族全般のスレだって >>1 に書いてあるでしょ。
896デフォルトの名無しさん:2013/08/20(火) 00:36:07.09
自分も昔、clスレあるからここはlisp族のschemeスレと、頭の中で勝手に仕分けして、
1レス読まずに勘違い書き込みしたことがある。
897はちみつ餃子 ◆8X2XSCHEME :2013/08/20(火) 00:59:34.80
折角 Common Lisp スレがあるんだから Common Lisp の話はそっちでやればいいとは思うんだけど、
綺麗に切り分けられるようなことでもないしなぁ。
例えば >>882-883 だとスペシャル変数 (ダイナミックスコープ) の話だと思って見れば CL 固有ってわけでもないし、
defparameter というオペレータの挙動の話として見れば Common Lisp の話だし。
898デフォルトの名無しさん:2013/08/20(火) 15:29:43.00
Schemeってつけるから紛らわしくなるんじゃないかな
Lisp方言と表せばいいと思う
899はちみつ餃子 ◆8X2XSCHEME :2013/08/20(火) 15:49:00.72
Scheme は Lisp ではないと主張する方もいるので…。
900デフォルトの名無しさん:2013/08/20(火) 17:54:02.89
SchemeもRubyもPythonもSmallTalkもPerlもLisp方言でいいよもう
901デフォルトの名無しさん:2013/08/20(火) 18:10:56.01
ポールグレアムはそんなことを言っているが、
matzが言っているように、S式とマクロが無いのはLispじゃないだろう。

グレアムへの反論としてはこちらも参照。
ttp://practical-scheme.net/trans/IsPythonLisp-j.html
902はちみつ餃子 ◆8X2XSCHEME :2013/08/20(火) 19:02:51.94
どこまで削っても Lisp って言えるかを考えると、最後に残るのはS式だよな。
マクロとか lambda とかが無くてもS式だったらまぁ Lisp かなって思う。
(それが使い物になるかは別として。)
903デフォルトの名無しさん:2013/08/21(水) 18:30:41.75
「最後に残るのはS式」派と「最後に残るのはlambda」派の戦いが
904デフォルトの名無しさん:2013/08/22(木) 21:21:55.24
マイナーなLisp処理系のソース眺めてたらコントロールスタックというものが出てきたけどなんですかこれ
905はちみつ餃子 ◆8X2XSCHEME :2013/08/22(木) 22:25:42.57
気になった用語は Wikipedia でも見ればいいよ。
http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%BC%E3%83%AB%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF

引数のやりとりとか呼出し元の記憶をしたりするスタックをコントロールスタックと呼んだりはするけど、
値のやり取りと制御フロー関係を別のスタックに分けたりすることもあるので、
他に「××スタック」がいくつかあるようなら制御フローに特化したスタックのことをそう言ってる可能性もあると思う。
昔の Ruby は 7 本のスタックに分けてたりもした。
http://loveruby.net/ja/rhg/book/module.html
(出典が見付からないけど今は一本化されていたはず。)

具体的にどう分けるかは設計思想によるのでなんとも言えない。
ソースコードがあるなら更に読み解いていくしか仕方ないんじゃないの。
具体的に処理系名をさらせるならもっと細かいことが言えるかもしれない。
906デフォルトの名無しさん:2013/08/22(木) 22:34:41.33
>>905
ありがとう
コントロールスタックってコールスタックと似たようなものと思っていいのか
処理系の名前は作者の許可がないから言えないけどX68k用でした
907デフォルトの名無しさん:2013/08/23(金) 00:08:44.35
VTOLかな
908デフォルトの名無しさん:2013/08/23(金) 01:15:28.10
VTOLのはスコープを積んでいく普通の評価用スタックだね

/* control stack */
typedef struct _c_stack {
 CELLP value_env; /* 変数束縛 */
 CELLP label_env; /* jump label */
 CELLP *s_stack_p; /* s_stack pointer */
 unsigned int jmp_env; /* jump address or call_next_method number */
} CSTACK;
909デフォルトの名無しさん:2013/08/23(金) 01:46:22.11
Lispインタプリタのmark-and-sweepの実装方法がよくわからない
メモリを確保する時にそのアドレスを連結リストに追加する
マークの時にGCの時にその連結リストに入ってるセルのマークを全部はずしてからシンボルテーブルやスコープを起点にマークを付けていく
スイープは連結リストを順番に見ていってマークが付いてないものを開放していくやり方じゃ駄目なのかな
何故かうまく行かないのはマークの付け方が甘いからだろうか
実行中の局所的なセルの辺りが怪しい気がするけどどうなんだろう
910はちみつ餃子 ◆8X2XSCHEME :2013/08/23(金) 01:53:25.54
どうだろうって言われてもなー。
GC はテストがやりづらいからよく見直して作り込むしか。
この本ではハマりどころも書いてあるから役に立つと思うよ。
http://www.amazon.co.jp/dp/4798025623
911デフォルトの名無しさん:2013/08/23(金) 01:59:18.84
>>910
これ3年前に出たばかりなのにもう新品がないのか
欲しいけど高いしちょっと手が出しにくいな
912デフォルトの名無しさん:2013/08/23(金) 02:07:50.18
Amazonには無いけど、ネットで調べられる本屋の在庫はあちこちで残ってる。
913デフォルトの名無しさん:2013/08/23(金) 02:38:13.35
>>909の1~3行目がマークスイープのアルゴリズムと少し違う感じがするけど
どこが違うかわかる人教えてください
914デフォルトの名無しさん:2013/08/23(金) 04:36:03.53
外してたらごめん。
SECDマシンの持つスタック4つのうち
Cの文字で表されるスタックがコントロールスタックって呼ばれるね。
コンパイルされたコードが入っているスタック。
915デフォルトの名無しさん:2013/08/23(金) 09:13:44.96
ちょっと複雑な数式をs式で書くのがめんどう
4*x+3+z*y
みたいなのを
(+ (* 4 x) 3 (* z y))
に自動変換してくれるマクロやツールないのでしょうか
Racketで動くものあると嬉しい
916デフォルトの名無しさん:2013/08/23(金) 10:20:29.08
ぐぐればでてくるけど、
そのうち中置記法がめんどうになるから気にしなくてもいい
917はちみつ餃子 ◆8X2XSCHEME :2013/08/23(金) 14:36:58.98
>>915
R6RS ポータブルな実装だとこれなんかどうかな。
https://github.com/marcomaggi/Infix
でも、こういったものは既存のものだと微妙に手に馴染まない感じだったりするので、
結局は自分で書くか諦めるかになったりするんだよね。
918デフォルトの名無しさん:2013/08/24(土) 14:24:39.60
>>916
そうは言っても中置記法の方が数式の表現として理解しやすいのでどうしようもないと思うが?
特に数値演算多用するようなもの作ってると実感すると思わん?
>>917
リーダーマクロで読ませたりしても分かち書きしないといけないから使いにくいんだよね。
919918:2013/08/24(土) 14:28:09.38
補足
行列やベクトルをこね回すときはあんまり不便感じないのはこれらを使うと他の言語でも読み辛いからなんだろうとは思う。
920デフォルトの名無しさん:2013/08/24(土) 15:26:03.85
>>918
同感
921はちみつ餃子 ◆8X2XSCHEME :2013/08/24(土) 17:11:43.42
>>918
Scheme だと名前の自由度が高くて曖昧さなくトークンを切出せないから仕方ない。
例えば foo+bar と書いてあってもこれ全体でひとつの変数名の可能性があるわけで。

自分で使う分には、変数名に記号は含まないとか、使う演算子の種類は四則演算に限るとか、
都合のいいところで割り切ることも出来るけど、汎用的に設計するのは難しいだろうな。
922デフォルトの名無しさん:2013/08/24(土) 17:38:55.14
おれは >>916 に同意だなぁ。
数式以外の残りは全部、前置なんだから。
数式大量だとカッコが煩雑なのは分かるけど、頑張って中置にしても、コストに見合わない気がする。
923デフォルトの名無しさん:2013/08/24(土) 18:04:40.89
中置記法って細かいルールが多いんで実は結構面倒臭い

中置の方が理解しやすいってのはただの慣れ
924デフォルトの名無しさん:2013/08/24(土) 18:36:37.64
>>923
そうは言うがな大佐
義務教育からずっとinfixなのは結構辛いと思うぞ
制御構文とかは気にならないけどやっぱり純粋に数式使う時はより長い期間触れたinfixが望ましい気がしないでも無いのだわ

>>921
+はあんまりきにならんけど、名前をハイフンで結ぶので減算記号はどもならんわー
925はちみつ餃子 ◆8X2XSCHEME :2013/08/24(土) 19:04:04.98
便利なものなら受入れられると思うが SRFI-105 もそんなに評判は良くないしな。
中置が前置より慣れてて受け入れやすいというのはわからんでもないけど、
中置が前置に混ざるという状況はどっちつかずで気色悪いとも思う。
926デフォルトの名無しさん:2013/08/24(土) 20:58:06.63
(defun infix-compiler (lst)
(cond ((atom lst) (if (symbolp lst) (symbol-value lst) lst))
((= (length lst) 3) (list (second lst) (infix-compiler (first lst)) (infix-compiler (third lst))))
(t (list (car lst) (mapcar #'infix-compiler (cdr lst))))))

昔書いた中置記法コンパイラだぜ
4行だぜ

(setq exp '((3 - 2) + ((8 + 4) / (8 - 4))))
(infix-compiler exp)
;=> (+ (- 3 2) (/ (+ 8 4) (- 8 4)))
;=> 4
927デフォルトの名無しさん:2013/08/24(土) 23:26:44.92
(infix-compiler '(1 + (f x y)))

あれ?
928デフォルトの名無しさん:2013/08/25(日) 20:46:26.06
>>839
これで。http://members.ozemail.com.au/~hodsond/dbp.html
もっと色々なことがしたいならbatchモードで。
929デフォルトの名無しさん:2013/08/25(日) 20:47:51.00
スレ再読み込みしてなかった…。
930はちみつ餃子 ◆8X2XSCHEME :2013/08/26(月) 12:35:41.81
>>227
性病検査は定期的に行ってますか?
本番ありで料金は二万円までが理想なんです。。
931はちみつ餃子 ◆8X2XSCHEME :2013/08/26(月) 12:51:14.26
>>930
うわー。 偽物出たわー。
このトリップもそろそろ潮時か。
932デフォルトの名無しさん:2013/08/26(月) 13:11:27.71
つーか確認しとけ

【悲報】2chの●購入者の個人情報やキャップパスなどヤバイ物多数がTorに流出part16
http://engawa.2ch.net/test/read.cgi/poverty/1377488375/
933はちみつ餃子 ◆8X2XSCHEME :2013/08/26(月) 14:20:27.69
>>932
マジかよ
トリップまではともかく決済関連もとなるとえらいこっちゃ
大問題とかいうレベルでないぞ
934デフォルトの名無しさん:2013/08/26(月) 15:36:41.53
>>932
おそろしすぎ
2chに情報渡してなくてよかった
935デフォルトの名無しさん:2013/08/26(月) 23:15:04.08
>>931
気づくの早すぎ
お前ただ誤爆しただけじゃねーの
936はちみつ餃子 ◆8X2XSCHEME :2013/08/26(月) 23:41:55.42
PC を起動している間は自動で定期巡回してるから書込みがあったらすぐに気付くことがまれによくある。
937デフォルトの名無しさん:2013/08/27(火) 15:21:52.90
それはschemeで書かれてるの?
938はちみつ餃子 ◆8X2XSCHEME :2013/08/27(火) 16:28:10.51
いいえ。
でも、 Scheme で書いてもそれほど難しくはなさそうだね。
939デフォルトの名無しさん:2013/08/27(火) 18:37:35.86
(setq sexps (loop repeat 1000000 collect (loop repeat 6 collect (random 10))))
(setq nums (loop repeat 1000000 collect (random 1000000)))

(defun uniq-num (lst)
(time
(let ((hash (make-hash-table :size 1000000 :test #'equal)))
(dolist (x lst)
(setf (gethash x hash 0) t))
(hash-table-count hash))))

(uniq-num sexps)
(uniq-num nums)

0.395 seconds of real time :test #'eq num
2.168 seconds of real time :test #'equal num
6.937 seconds of real time :test #'equal str
54.463 seconds of real time :test #'equal sexp
940939:2013/08/27(火) 18:39:39.89
私は100万個のS式から重複を削除したいです。
remove-duplicateでは処理が終わらずhash-tableを使うことにしました。
上の式を実行すると 54秒で処理を終えることが出来ました。

しかしhash-tableを:test #'eqにしランダムな数値を100万個入れた所0.4秒で終わりました。
比較関数の違いで100倍も違うのか疑問に思い:test #'equalに変えてみた所2.1秒でした。
S式の場合は何故こんなに遅いのだろうと、試しに
(setf (gethash (format nil "~a" x) hash) t)としてみると6.9秒で済ますことが出来ました。

もっと早く重複を削除することは出来ないでしょうか?お知恵を拝借させてください。
941はちみつ餃子 ◆8X2XSCHEME :2013/08/27(火) 20:40:39.70
Common Lisp についてはよく知らないけど、
数値を入れる場合なら比較関数として eq を使うと正しい結果にならないんじゃね?
942デフォルトの名無しさん:2013/08/27(火) 20:54:23.77
自然結合する関数があった気がする
943デフォルトの名無しさん:2013/08/27(火) 20:59:01.97
高速RDBMSを使うという裏ワザもある
格納の時間を無視するなら、100万でも1秒かからない気がする
944デフォルトの名無しさん:2013/08/28(水) 00:12:02.71
適材適所
945デフォルトの名無しさん:2013/08/28(水) 02:43:15.29
2chやばいから
したらば
あたりに移動できないものかな
Gaucheのサイトの中に2chのcgi動かしてくれる場所あれば
一番いいのだけど
946デフォルトの名無しさん:2013/08/28(水) 02:44:21.20
racket の dict-refならhashもalistも自動切り替えしてくれるよ
947はちみつ餃子 ◆8X2XSCHEME :2013/08/28(水) 08:02:27.08
>>945
WiLiKi や Chaton があるんだから質問系はそっちに書けばいいじゃん。
ただ、 2ch くらいはっちゃけられる場所は欲しいよな。

ゆるく雑談しながらダベる場所としては IRC もあるぞ。
freenode の #Lisp_Scheme だ。
ずっと過疎っぱなしで寂しいのでみんなも来てくれよな!
948939:2013/08/28(水) 21:51:16.71
みなさんレスありがとうございます。
この重複削除の時間が10分の1にさえなればプログラム全体に大きな影響を与えられます。
ダーティハック的な手法さえ許容し高速化できないものでしょうか。

>>941
はい、eqはオブジェクト同一性による比較であり同じ数値が違うオブジェクトである可能性がある為eqlを使うべきでした。

>>942
lisp 自然結合 等で検索しても見つけることができませんでした。どのような処理をする関数なのでしょう(lisp内部にDBを作る?)。
949939:2013/08/28(水) 21:55:00.30
>>943
>格納の時間を無視するなら、100万でも1秒かからない気がする
御免なさい格納の時間とは何を指しているのでしょう。
(setf (gethash x hash) t)) の処理時間の事を示すのであれば
現在の場合も格納を無視した時間は格納時間に比べ微である様に思います。

>>946
racketは型に応じて処理を切り替え、重複削除が高速に行えるということでしょうか。
今回はCLで書いている為残念ながら利用できませんが良いですね!
950はちみつ餃子 ◆8X2XSCHEME :2013/08/28(水) 23:18:48.70
>>946 >>949
Common Lisp にも aref があるじゃん。
951939:2013/08/28(水) 23:59:45.72
>>950
ありますがどう使えと・・?
952はちみつ餃子 ◆8X2XSCHEME :2013/08/29(木) 01:24:53.90
さあ。
とりあえず同等のものがあるから言ってみただけ。
953デフォルトの名無しさん:2013/08/29(木) 01:49:55.84
>>949
格納の時間は、たぶんデータベースを使うならそのデータベースに登録するのにかかる
時間ということでしょう
まあ、100万レコード登録するとかなり時間かかるんじゃないかと思うけど
954デフォルトの名無しさん:2013/08/29(木) 01:52:09.26
S式の部分を、できるならvectorとかにしたらどうかな?
955デフォルトの名無しさん:2013/08/29(木) 18:21:28.69
eval と apply の違いがいまいち分かりません
956デフォルトの名無しさん:2013/08/29(木) 19:55:41.47
eval - S式を評価する
apply - 関数に引数を適用する
957デフォルトの名無しさん:2013/08/29(木) 19:57:19.97
「引数に関数を」の間違いだ
958デフォルトの名無しさん:2013/08/29(木) 20:09:28.07
evalはS式ならなんでもいい(マクロも展開する)
applyは関数しか適用できない
959デフォルトの名無しさん:2013/08/30(金) 04:28:32.52
schemeってS式と関数は別物なのだろうか
960デフォルトの名無しさん:2013/08/30(金) 08:49:50.43
関数はatomだからS式だよ。
簡単にevalを書ける例の表現ではないけど。
961デフォルトの名無しさん:2013/08/30(金) 09:26:32.19
scheme界のニューアイドル、naoiwataをこれからもよろしく!
困ったときは泣いている顔文字でアピールしてくるので、お前らちゃんと助けてやれ
962はちみつ餃子 ◆8X2XSCHEME :2013/08/31(土) 01:37:23.96
そうか。
963デフォルトの名無しさん:2013/08/31(土) 11:43:26.88
R7RSに準拠するつもりでオレオレ処理系作ってます
複素数のsinってどうやるんだっけ?とかwikipedia先生に聞きながらちまちま実装してる今日このごろです
で本題なんですが + - * / の可変長引数版は引数を fold すればいいと思うんですが
= < <= > >= の可変長引数版を実装するのになんかいい高階関数とかないでしょうか
964デフォルトの名無しさん:2013/08/31(土) 14:33:13.51
悩んでるときに「大丈夫?」って声かけられたとして。
相手が男もしくは利用価値のありそうなプログラマの場合は「だいじょぶです(;;)」
相手が女の場合は「大丈夫^^」ってレスする女のこと、Lisperの皆さんはどう思われますか?
965デフォルトの名無しさん:2013/08/31(土) 14:36:50.10
男と女、または上位の人間と対等な人間
それらに対する反応をナチュラルに使い分ける腹黒い女は、僕はどうかと思いますね
966デフォルトの名無しさん:2013/08/31(土) 14:45:05.13
なんか人としてどうしようもないのがわきはじめたオワタ
967はちみつ餃子 ◆8X2XSCHEME :2013/08/31(土) 16:09:59.79
>>963
比較関数の場合でも持ち回る値の数は一個でよくて、但し、途中で脱出する場合がある。
Scheme では第一級継続のおかげで大域脱出が簡単に書けるので、こんな風に書ける。

(define (< arg1 . rest)
(call/cc
(lambda(cc)
(fold (lambda(elt acc) (if (<2 acc elt) elt (cc #f))) arg1 rest)
#t)))

ここでは <2 っていうのが二引数版の < ってことね。
この程度のものに継続を捕捉するのが非効率だということであれば、
何かの特別な値が発生したときにその場で脱出するような機能をもった fold を作ればいいと思う。
968デフォルトの名無しさん:2013/08/31(土) 18:34:59.60
>>963
処理系はマクロを廃止して仕様をコンパクトにしてダウングレードしたバージョンを作ってくれないでしょうか
969デフォルトの名無しさん:2013/08/31(土) 18:40:52.58
Schemeからマクロ抜いてどうすんの
970デフォルトの名無しさん:2013/08/31(土) 19:02:35.47
分岐(if, cond)とシリーズ(begin)と関数作成(lambda)とデータ化(quote)と例外処理(try, with)までは認めよう
他のマクロはいらない
set!もいらない

もっと純粋さを追及してみてはどうか
971デフォルトの名無しさん:2013/08/31(土) 19:09:32.41
letもいらない? lambdaでがんばるのか... 大変そうだ
例外はマクロでなくてもいいかと
972デフォルトの名無しさん:2013/08/31(土) 19:24:18.06
もうskiコンビネータ使ってプログラム書けばいいじゃん
973デフォルトの名無しさん:2013/08/31(土) 21:00:36.12
妙なカキコがあると思ったら今日は中高生の休み最後の日か
974デフォルトの名無しさん:2013/08/31(土) 21:22:15.53
マクロってLisp最後の砦じゃないの
975デフォルトの名無しさん:2013/08/31(土) 22:00:26.65
ClojureもCommonLispも単独スレあるしつぎからSchemeスレにしてほしい
976デフォルトの名無しさん:2013/08/31(土) 22:35:55.14
macro無くすならfexpr復活させようぜ?w
977デフォルトの名無しさん:2013/08/31(土) 22:40:06.12
マクロ無くせというよりも、自作処理系作るならマクロなしバージョンで洗練させてみてはどうかという提案
その方が簡単だし、プログラミングするときに技術的な挑戦が存在する
978デフォルトの名無しさん:2013/08/31(土) 22:54:03.16
>>977
技術的な挑戦をしたいのなら、>977自身が挑戦的なオレオレ処理系を作ればいいのではないかと
979デフォルトの名無しさん:2013/08/31(土) 23:06:26.18
俺々処理系作ったことのある身から言うとマクロ無いほうが
ゴリゴリ決め打ち処理書けるので楽|雑にかける
980はちみつ餃子 ◆8X2XSCHEME :2013/09/01(日) 00:02:11.48
書いてる内にその自作処理系でコンパイラを書きたくなり、
ブートストラッピング的なことをするときにマクロがないとつらたん。
という理屈でやっぱりマクロが欲しくなるものらしいけどね。

とりあえず必要なところから書いていけばいいんじゃないの。
マクロが要るようなら導入すればいいし、要らないなら後付けでいいじゃん。
うまく後付けできなくて最初から書き直しなんてのもよくあること。
981デフォルトの名無しさん:2013/09/01(日) 01:21:25.46
>>980
次スレよろしく
982はちみつ餃子 ◆8X2XSCHEME :2013/09/01(日) 01:52:09.17
立てたよ。

Lisp Scheme Part37
http://toro.2ch.net/test/read.cgi/tech/1377967896/
983デフォルトの名無しさん:2013/09/01(日) 13:56:58.49
おつかれー
984デフォルトの名無しさん:2013/09/01(日) 19:51:27.12
>>982
誤爆www
985しょしんしゃ ◆/DG0Jy/HnA :2013/09/02(月) 10:29:09.39
体調悪いアピールしてもいい?
986デフォルトの名無しさん:2013/09/02(月) 10:55:40.66
プログラマ板でしてね
987しょしんしゃ ◆/DG0Jy/HnA
>>986
しょしんしゃなのでプログラマじゃないです