Lisp Scheme Part17at TECH
Lisp Scheme Part17 - 暇つぶし2ch35:デフォルトの名無しさん
07/04/24 21:33:54
Lisp URLリンク(find.2ch.net)
Scheme URLリンク(find.2ch.net)
Emacs URLリンク(find.2ch.net)
Xyzzy URLリンク(find.2ch.net)
Autocad URLリンク(find.2ch.net)
Maxima URLリンク(find.2ch.net)

また失敗これでいいか

36:デフォルトの名無しさん
07/04/24 22:30:22
>>33
そうだよな
お前の場合もう社会的生命は終わってるしな

37:デフォルトの名無しさん
07/04/24 22:38:45
あっさり切り替えされたんで必死で一捻り加えてきたw

38:デフォルトの名無しさん
07/04/25 01:15:15
というか普通にスレ載せた方がいいだろ

39:デフォルトの名無しさん
07/04/25 11:14:38
>>38
意図がわからなかったようだな。スレが進行中にデットリンクや新たなスレが
出来た時を考えてる。今だけを見ていればスレを載せればいい事だ。

40:デフォルトの名無しさん
07/04/25 11:57:56
竜頭蛇尾

41:デフォルトの名無しさん
07/04/25 12:16:31
関連スレなんて、見る奴は自分で検索して見るし、見ない奴はまったく見ない。
その時点での現行スレへのリンクもいらないよ。

42:デフォルトの名無しさん
07/04/25 12:36:05
スレタイ検索だと糞スレも普通にひっかかるし
関連スレも進みが遅いし現状でいいでしょ・・・
そもそも、なんでスレの序盤でテンプレの話してるんだよw

43:デフォルトの名無しさん
07/04/25 12:37:03
最近このスレ、括弧が滅多に書かれなくなったな

44:デフォルトの名無しさん
07/04/25 13:03:47
>>43
:-))))))))))))))))))

45:デフォルトの名無しさん
07/04/25 13:22:07
    _, ._
  ( ・ω・)
  ○={=}〇,
   |:::::::::\, ', ´
.)).))し ))`(.@)..)))))))))


46:デフォルトの名無しさん
07/04/25 14:48:15
((((((((なんで閉じ括弧ばかりなんだよ...))))))))

47:デフォルトの名無しさん
07/04/25 17:07:36
>>43
カッコ悪いからな

48:デフォルトの名無しさん
07/04/25 17:14:28
>>47
【審議中】
    ヒソヒソ       ヒソヒソ
        ∧,,∧ ∧,,∧    ヒソヒソ
     ∧ (´・ω・) (・ω・`) ∧∧
ヒソヒソ ( ´・ω) U) ( つと ノ(ω・` )  ヒソヒソ
    | U (  ´・) (・`  ) と ノ
     u-u (l    ) (   ノu-u
         `u-u'. `u-u'


49:デフォルトの名無しさん
07/04/25 23:41:17
括弧が逆だと激しく読みにくいな
)if )good-smell? omeko( )erect( )puke((

50:デフォルトの名無しさん
07/04/26 00:52:52
>>49
"全く気にならない!" と,
言いたいんだけど, 字面の座りが悪い.
つか, " ')if ってシンボルあったっけ?" て,
思った


51:デフォルトの名無しさん
07/04/26 06:53:01
>>49
うーん、その発想がすてきw

52:デフォルトの名無しさん
07/04/26 07:05:18
44 名前: あぼ~ん [あぼ~ん] 投稿日: あぼ~ん
あぼ~ん
45 名前: あぼ~ん [あぼ~ん] 投稿日: あぼ~ん
あぼ~ん
46 名前: あぼ~ん [あぼ~ん] 投稿日: あぼ~ん
あぼ~ん
47 名前: あぼ~ん [あぼ~ん] 投稿日: あぼ~ん
あぼ~ん
48 名前: あぼ~ん [あぼ~ん] 投稿日: あぼ~ん
あぼ~ん
49 名前: あぼ~ん [あぼ~ん] 投稿日: あぼ~ん
あぼ~ん
50 名前: あぼ~ん [あぼ~ん] 投稿日: あぼ~ん
あぼ~ん
51 名前: あぼ~ん [あぼ~ん] 投稿日: あぼ~ん
あぼ~ん

53:デフォルトの名無しさん
07/04/26 22:38:04
ところでIRCのwide系にある#scheme-jpチャンネルがいつも寂しすぎるんだけど、
次あたりからテンプレに入れね?

54:デフォルトの名無しさん
07/04/26 23:21:58
>>53
だったらこれも。
URLリンク(www.lingr.com)

55:デフォルトの名無しさん
07/04/28 04:19:33
次のようなリストがあるとして、

'("April 2007"
("Su" "Mo" "Tu" "We" "Th" "Fr" "Sa")
(1 2 3 4 5 6 7)
(8 9 10 11 12 13 14)
(15 16 17 18 19 20 21)
(22 23 24 25 26 27 28)
(29 30 #f #f #f #f #f))

再帰を使って下のように整形して出力するにはどうすればよいですか?

April 2007
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30


56:デフォルトの名無しさん
07/04/28 04:23:30
リストだったらfor-eachで再帰

57:デフォルトの名無しさん
07/04/28 04:26:12
すみません。for-eachならできたのですが、
こういう処理は再帰(named let とか)ではやらないのでしょうか?

58:デフォルトの名無しさん
07/04/28 08:42:28
もちろん再帰でやってもいいけど、その再帰が何を表しているのかは
ちゃんと読まないとわからない。
for-eachなら名前を見ただけで一発じゃない?
for-eachも中身は再帰で書いてあると思いねえ
(実際はCのfor文で書いてあるかも知れないが)。

だから再帰で繰り返しするなら、できればその一般的な構造を取り出して
汎用化し、名前をつけるのがいい。これが抽象化。

……もしかして宿題だったとか。

59:デフォルトの名無しさん
07/04/28 13:54:07
On Lisp 2刷記念age

60:デフォルトの名無しさん
07/04/29 00:00:26
転売屋脂肪

61:デフォルトの名無しさん
07/04/29 01:13:29
2刷って図のコードが本文のコードをぶった切ってるのって直ってるの?


62:デフォルトの名無しさん
07/04/29 01:21:16
版がかわらないと中身は同じなんじゃね?

63:デフォルトの名無しさん
07/04/29 01:42:05
なにそれ? どこの部分?
俺、Lisp さっぱり知らない癖に Lisp の勉強用にこれ読み始めたところだから
知らずにその部分を読んだら、ちょっと錯乱しちゃうかも。

64:デフォルトの名無しさん
07/04/29 04:52:14
>>63
31-32とか74-75とか。
74-75は悩んだな。
「この最後の or は意味ないだろ・・・」って思ってたら次のページに続きがあった。

65:デフォルトの名無しさん
07/04/29 05:37:01
>>64
㌧!
確かにこの切り方は酷いw

66:flatline ◆r6EONKKhcc
07/04/29 14:31:12
>>61
そういう点は一切変えていません.
URLリンク(practical-scheme.net)
の「第1版第1刷」に挙げられている6項目のみ修正されています.

うーん,本文のコード内で改ページがあるのは読み辛かったですか... すいません.

次の増刷はさすがにずいぶん先になるだろうし,
改版でもなければ改ページの伴うような大きな変更はできないのですが,
一応ご不満な点があれば何であれお伝え下さい.

67:デフォルトの名無しさん
07/04/29 15:08:38
なんでお前の手伝いをせにゃならんの?

馬鹿は休み休み言え

68:デフォルトの名無しさん
07/04/29 15:49:17
休み休み言ってる気が・・・

69:デフォルトの名無しさん
07/04/29 16:15:27
GW馬鹿……

70:デフォルトの名無しさん
07/04/29 18:50:18
>うーん,本文のコード内で改ページがあるのは読み辛かったですか... すいません.

いや、コード中に改ページがくること自体は全然許容範囲。
問題はその改ページの仕方。1行だけ次のページに来て
しかもその間に別のコード(図のコード)がくるのはちと辛い。

71:デフォルトの名無しさん
07/04/29 20:07:18
>>67
不満の指摘=手伝い、とか、「せにゃならん」とか、ココロのビョーキか君はw

72:デフォルトの名無しさん
07/04/29 22:00:17
ま、こんなところで呼びかけるのは間違ってると思うがな。
変なのに絡まれる前に撤退したほうが吉。

73:デフォルトの名無しさん
07/04/29 22:41:46
また荒しか

74:デフォルトの名無しさん
07/04/29 22:59:39
デバッグしたいんなら自分のブログでやればいいのに
なんでここでやるかな
頭悪そう

75:デフォルトの名無しさん
07/04/29 23:15:29
一つききたい事がある。国内のlisp関連のMLはどこにある?
gaucheだけ?

76:デフォルトの名無しさん
07/04/29 23:38:27
>>66
もう買ってしまったが、別にそのくらい気にしないお。
満足満足。PC の電源入れなくても読めるのイイ。

77:デフォルトの名無しさん
07/04/29 23:47:04
>>74
まぁ君ほどの学歴は無いよ。うん。

78:デフォルトの名無しさん
07/04/30 01:07:44
著者のブログってどこだっけ?
アフィリンク踏んでやるからURLヨロ

79:デフォルトの名無しさん
07/04/30 22:08:00
slibとかrhizomeにsyntax-object->datumはあるのに何で逆のdatum->syntax-objectは無いのかな?

80:デフォルトの名無しさん
07/05/02 00:58:15
sbottって?

81:デフォルトの名無しさん
07/05/02 02:22:04
for-eachってeachでも良くないですか?
何でfor-が付いてるでしょうか?
徒にインデントが深くなりませんか?

82:デフォルトの名無しさん
07/05/02 03:03:13
おもしろいからちょっと甜菜
URLリンク(d.hatena.ne.jp)

Java プログラマから見るとやっぱり多重継承って完ぺきに悪みたいだ
CLOS なんて糞オブジェクトシステムって思われるんだろうなぁ

83:デフォルトの名無しさん
07/05/02 03:15:58
mix-in 最高!

84:デフォルトの名無しさん
07/05/02 03:27:45
mix-inもごちゃごちゃしそうな感じだが

85:デフォルトの名無しさん
07/05/02 05:16:16
GaucheNight座談会資料を更新しました
URLリンク(www.kahua.org)


86:デフォルトの名無しさん
07/05/02 07:44:26
>>82
やっぱりjavaだけやってちゃ駄目だねぇ。視野狭すぎ。
lispだけじゃないけど色々勉強するのはホント大事だな。


87:デフォルトの名無しさん
07/05/02 08:54:33
ま、Rubyぐらいは常識だな。

88:デフォルトの名無しさん
07/05/02 08:59:27
>>82
話の本題はさておいて、
なかなか親近感の沸く議論態度wだと思った。
この人組込用JavaVM開発してた人でしょ?
mix-inのメリットとかの性を認識しつつ、
指示語途上、多重継承を否定する立場に居たのだろうと思った。

89:デフォルトの名無しさん
07/05/02 09:00:20
かの性 orz
可能性 (・∀・)

90:デフォルトの名無しさん
07/05/02 09:01:32
指示語途上 → 仕事上

欝出汁脳

91:デフォルトの名無しさん
07/05/02 09:06:15
>>82
1レス目 『それを理解する能力さえない技術者が困り者。』
2レス目 『とまあ,かのように,パラダイムシフトについてこれない技術者というのはいるものです.』
3レス目 『まあ結局この「とおりすがりA」さんは,プログラミングのことがまるで解ってないだけでしょう.』
4レス目 『なんでも人に教えてもらおうとせず,少しは自分で勉強しないと,脳味噌が退化しますよ.』
5レス目 『おそらくその調子だとコンポジションのイロハも分からずに乱用しただけなのでは.』
6レス目 見下す発言なし
7レス目 『少しは勉強して下さい.』

多重継承をけなしている人の問題点は、Java以外を知らない事ではないと思います。
「自分と他人の意見が異なるのは他人が劣っているからだ」と決め付けている事が問題点です。
その姿勢を変えない限り、いくら知識があっても不毛な罵倒合戦になるだけです。

議論のアンチパターン
URLリンク(www.shos.info)

92:デフォルトの名無しさん
07/05/02 09:13:47
他人の日記のコメント欄に上がりこんで
突っ込んだ議論をするのはちょっとアレな感じがする。
そういうのは自分の日記に書いてトラバするのがマナー。

93:デフォルトの名無しさん
07/05/02 11:50:09
>>92
> 他人の日記のコメント欄に上がりこんで

はてなじゃそれがマナーだよ
マジで

94:88
07/05/02 13:48:59
前言撤回。なんつか2ちゃんクオリティなblogだな

95:デフォルトの名無しさん
07/05/02 19:18:19
>>91
自分で「辛口」と称する人はだいたいそんな感じだよ。
自己愛の超過と説明能力の欠如が生みだす溝や不快感を、
あくまでスタイルだと言い張って自己肯定するときにこの単語が使われる。
なかなかこう、鋭い指摘をミもフタも無く書くから結果辛口になる、という「まともな」人材は居ないです。

96:デフォルトの名無しさん
07/05/02 20:03:39
ふーん、そういうものなのですか。

日記という形式は、正しい事だけを書いたり、
正しい結論を得るために議論をする場ではなくて、
妥協の産物でしかない現状の自分と、
他人が見たらちょっと恥ずかしい感じがする理想の自分との
矛盾に引き裂かれながらのた打ち回る、そんな形式なのだと思ってたw

公開日記だから、あまり大人気ない対応をすると笑われるでしょうけどねw


97:デフォルトの名無しさん
07/05/02 20:17:19
他人が辛口とか毒舌とか感じるサイト・ブログならそうかもね。
でも自称辛口とか、自称毒舌とかいうトコだと、そういうのは期待しにくいかな。経験的にいって。
たいてい余裕が無い。

98:デフォルトの名無しさん
07/05/02 20:37:59
多重継承自体は悪でもなんでもなくて衝突の回避の仕方さえちゃんとルールになっていればそれはそれで便利に使えるのにねぇ
いろんなオブジェクトシステムがそれぞれその違った形で解決しているんだけど(mix-inも)この人は多重継承といったらC++しか無いみたい
個人的にはC++の多重継承だって使いどころさえ掴めば十分武器になると思うしここまでボロクソにいうものかと思うんだけど

そういえばインターフェースによる解決って作った本人が後に失敗したって漏らしたとか聞いた事あるな
まあ本当かどうかわからないけど

99:デフォルトの名無しさん
07/05/02 20:50:20
どの言語の話?(一応確認)

100:デフォルトの名無しさん
07/05/02 21:31:37
そんな昔の記事を引っぱりだしてやるなよ。その後は多少謙虚になた模様だし。
↓通りすがりに喰いつかないの図
URLリンク(d.hatena.ne.jp)

101:デフォルトの名無しさん
07/05/02 21:52:50
相変わらずオブジェクト指向命、GoF最高な感じがプンプン漂ってくるんだけどw
言っている事レベル低いし

102:デフォルトの名無しさん
07/05/02 21:55:47
Lisp に関係ない Java 屋の話はどうでもいいよ。Java 関連のスレでやってくれ。

103:デフォルトの名無しさん
07/05/02 21:56:11
On List の p16 の最初の文章「Lisp プログラムでは...」の"ム"が異様にデカい。

104:デフォルトの名無しさん
07/05/02 22:00:50
>>85
これって動画録って流したりしないんですかね

105:デフォルトの名無しさん
07/05/02 22:01:47
オブジェクト指向とか多重継承とか、結局糞だということを証明したという意味で
CLOS は評価されるべきだな。

106:デフォルトの名無しさん
07/05/02 22:08:20
CLOSは引数の数を合わせなきゃならなかったり使いづらいよ
それにメソッドはオブジェクトに属している方が楽だし

107:デフォルトの名無しさん
07/05/02 22:18:48
適材適所だから、多重継承が最善である場面もある。
一神教的に自分の信奉している考え方以外邪道だという難儀な奴が最近多い。

108:デフォルトの名無しさん
07/05/02 22:22:43
そもそも「オブジェクト指向」なんて素人受けするようなキャッチフレーズが諸悪の根源だと思う。
所詮、オブジェクト指向なんてコーディングテクニックの一つに過ぎない。
それも、80 年代の香りプンプンの…

109:デフォルトの名無しさん
07/05/02 22:46:30
オブジェクト指向って言葉ってsmalltalkの時から無かったっけ?

110:デフォルトの名無しさん
07/05/02 22:54:07
もっと前からある

111:デフォルトの名無しさん
07/05/02 22:56:30
っつーか、その手のくだらねー話はもう秋田
Java だか C++ だかでやってくれよ、な。

112:デフォルトの名無しさん
07/05/02 22:59:55
CLOSがらみの話だから別に良いだろ
つーかageんなハゲ

113:103
07/05/02 23:02:19
誰かひとりぐらい構ってくれよぉ。

114:デフォルトの名無しさん
07/05/02 23:09:48
>>113

…本当だ!
書体も違うような

115:デフォルトの名無しさん
07/05/02 23:25:28
確かに書体も違うな。他のプログラムの"ム"は左下の角が上に跳ねてるし。

116:デフォルトの名無しさん
07/05/02 23:33:35
ファイアーエムブレムみたいなものだな

117:デフォルトの名無しさん
07/05/02 23:36:32
>>113
On Listのほうが気になる

118:デフォルトの名無しさん
07/05/02 23:39:25
>>117
//Д///) わ、わざとだよ! つ、ついだよ!

119:デフォルトの名無しさん
07/05/03 06:59:28
そもそもLISPは構文的にオブジェクト指向を受け付けない。
オブジェクト指向は失敗だったとC++で証明されたから良かったものの、
もしC++で成功してたらLISPに未来はなかった。
C++の失敗に感謝しよう。

120:デフォルトの名無しさん
07/05/03 07:06:50
>>119
てめぇ、俺がC++厨だと知ったうえで喧嘩売ってんのか? ( ゚Д゚) ア゙ア゙ん?

121:デフォルトの名無しさん
07/05/03 07:45:24
CLOSの場合は、GOFのパターンやJAVAなどのオブジェクト指向で必要になっ
てる概念は不要になってくる。また、メソッドをオブジェクトに埋め込む事も可能。

122:デフォルトの名無しさん
07/05/03 07:46:16
C++は新しいLISPになろうとしているのだから
反目する必要はない

123:デフォルトの名無しさん
07/05/03 07:46:33
121 不要→一部不要 語弊ありありだった。

124:デフォルトの名無しさん
07/05/03 10:37:25
>>122
そうなんだけど、C++はやろうとある程度なんでも出来るけど、やろうと
すればするほどカオスになってしまって人が取り扱えないものに変貌して
しまうから、Lispほどの柔軟性を人が自在に扱えるものにするには、Lisp
以上の工夫がいるだろう。グリーンスパンの法則のとおりかも。

125:デフォルトの名無しさん
07/05/03 10:47:53
C++はBoostでかなりおもしろくなってきたと思うけど

126:デフォルトの名無しさん
07/05/03 11:21:47
>>125
もう C++ の信者はプログラミングよりも言語の放つ悪臭と対決するのが
快感になってきているな。

127:デフォルトの名無しさん
07/05/03 18:26:56
lisp loveと言うよりむしろS式love

128:デフォルトの名無しさん
07/05/03 19:10:07
ひゃあああ

129:デフォルトの名無しさん
07/05/03 22:47:22
>>125
Boostのテクニックは凄いし、Lisp以上の工夫はしてる。しかし、Lisp以上の
柔軟性は実現出来てないかも。

130:デフォルトの名無しさん
07/05/03 23:15:41
C++テンプレートプログラミングって、ファンクショナルプログラミング
の側面が多いから、むしろLisperはとっつきやすい。

131:デフォルトの名無しさん
07/05/03 23:38:41
C++ や Java が必死で頑張って、新しい機能を言語に取り入れたとかはしゃいでるけど、
Lisper から見れば所詮ライブラリで実現出来る、学生演習程度のものだからねぇ。
あまり魅力無いですね、ハイ。

132:デフォルトの名無しさん
07/05/03 23:47:45
なのにLispファミリのほうがせいぜい学生のオモチャで、
C++やJavaはしっかり大人の仕事道具なのがなんともな。

(あ、噛み付かなくていいからな)

133:デフォルトの名無しさん
07/05/03 23:52:26
>>132
C++ は糞だが大人の仕事道具となってはいますね。
Java はなんか、プログラミングセンスの無い人向けのトイ言語ってイメージ。

134:デフォルトの名無しさん
07/05/04 00:48:24
Boost は学生演習越えていると思うけどなぁ

135:デフォルトの名無しさん
07/05/04 01:01:43
Boost その物はね

136:デフォルトの名無しさん
07/05/04 01:13:48
C++も得に糞とは思っていなくてLispも好きな物好きがここにいます

137:デフォルトの名無しさん
07/05/04 01:13:54
結局やってることは、はるか昔に Lisp (含 Symbolics とか Emacs Lisp)
でやってたことの再発見を、必死に追従しているだけにしか見えないけどね。

138:デフォルトの名無しさん
07/05/04 01:31:05
すべての言語はLispから生まれLispへと回帰する。

139:デフォルトの名無しさん
07/05/04 02:24:21
C++は糞だ。などという言葉は信じない
C++を批評できる日本人は存在しないからだ

LISPは糞だという人間は信頼できる
優秀なLISPERに違いないからだ

140:デフォルトの名無しさん
07/05/04 02:32:04
人は如何にしてS式といふものとM式といふものとを区別し得よう。
彼のS式の魔力は、彼がevalするとはapplyする事である事を明瞭に悟つた点に存する。
S式の対象がatomであるとpairであるとは一つの事であつて二つの事ではない。
S式とは竟にatomの夢を懐疑的に語る事ではないのか!

141:デフォルトの名無しさん
07/05/04 04:07:25
Racterがそんなこと言ってたような気がするw

142:デフォルトの名無しさん
07/05/05 18:21:32
>>139
聖域なき構造改革はまだですか

143:デフォルトの名無しさん
07/05/06 03:28:12
URLリンク(page6.auctions.yahoo.co.jp)

144:デフォルトの名無しさん
07/05/06 05:19:27
l
i
s
p





145:デフォルトの名無しさん
07/05/06 15:41:56
>>140
小林秀雄も lisper だったのかw

146:デフォルトの名無しさん
07/05/06 20:12:05
>>138
最近のAOPも、CLOSの影響だしJavaのAOPへの動きもlisp
への回帰と言えるかも。

大人の道具という意味はわからんな。

147:デフォルトの名無しさん
07/05/06 20:43:08
電動こけしとかそういうの

148:デフォルトの名無しさん
07/05/06 21:26:28
Cokeで遊んでる人おらん?

149:デフォルトの名無しさん
07/05/06 21:44:27
電動Cokeし

150:デフォルトの名無しさん
07/05/06 22:14:08
> 最近のAOP

10年前が最近かよ(ぷ

151:デフォルトの名無しさん
07/05/06 22:15:12
> 最近のAOPも、CLOSの影響だし

ついでに、AOPの提唱者はCLOSの人だっつーの(w

152:デフォルトの名無しさん
07/05/06 22:50:02
>>148
Squeakスレのほうがいいんでない?

153:デフォルトの名無しさん
07/05/06 23:57:07
もうすぐGaucheNightだけどチケット買えた奴いる?

154:デフォルトの名無しさん
07/05/07 17:38:21
Gauche 0.8.7を使っています。
ssaxでhtmlがパースできると聞き、
(ssax:xml->sxml (receive (return-code head body)
             (http-get "www.google.com" "URLリンク(www.google.com))
             (open-input-string body) ) '())
としてみたのですが、
*** ERROR: "(input string port)":line 12: (END . head) while expecting ENDmeta
といわれてしまいます。
これは僕の使い方がいけないんでしょうか。
それともssaxがまだ対応してないんでしょうか。


155:デフォルトの名無しさん
07/05/07 19:03:18
>>154
パースできるのはxmlだから。

156:デフォルトの名無しさん
07/05/07 19:31:42
>>154
パースできるのはhtmlではなくXML。
対象がXMLであれば問題なくパースできる。
htmlの中でもxhtmlはXMLでもあるのでパースできる。
なお、文字コードの変換は勝手にはやってくれないことに注意。

157:154
07/05/07 20:11:09
ありがとうございます。
なんかごっちゃになってたみたいです。
htmlパーサがないか探して見ます。

158:デフォルトの名無しさん
07/05/07 22:50:43
>>154
Gauche固有の話題なら本家のWiLiKiに書き込んだら書いた方がいいんでね?

159:デフォルトの名無しさん
07/05/08 01:03:26
ビリーズブートキャンプでもLispが使われてるらしいな。

160:デフォルトの名無しさん
07/05/08 09:04:57
前世紀くらいにLispとPerlの言語の設計を比較した文書を読んだと思うんですが
URLあったら教えてください。
いくつかキーワードを出してその優先順位が違うとか何とか・・・
うろ覚えだけど厳格さとか正確さとかお手軽さとかそんな感じだったような・・・

161:デフォルトの名無しさん
07/05/08 09:08:20
前世紀ってことはPerl 4?
Perl 6との比較があるなら俺も読みたい。

162:デフォルトの名無しさん
07/05/08 10:06:45
比較ってのはある程度近いものを比較して意味が有るんだよな。
perlとlispの比較って鉄パイプと数字の3を比較してくれっていうくらい
意味が捕らえにくい。比較する意味があるんか

163:デフォルトの名無しさん
07/05/08 10:33:16
↑一番意味のないレス↓

164:デフォルトの名無しさん
07/05/08 10:59:33
一番なのに二つ指定するのってどうだろう。

165:デフォルトの名無しさん
07/05/08 13:01:49
Scheme 5つの誤解

1. 黒板でしか使えないオモチャである
2. 仕様が貧弱である
3. 本当のマクロは書けない
4. パッケージシステムがない
5. 正規表現が使えない

166:デフォルトの名無しさん
07/05/08 17:52:12
Lisp Scheme = 片言計画

167:デフォルトの名無しさん
07/05/08 17:59:43
へ・・・片言・・・

168:デフォルトの名無しさん
07/05/08 18:18:01
Schemeは今すぐ敗北を認めて黒田氏の尻の穴を舐めるように。

169:デフォルトの名無しさん
07/05/08 19:24:17
gauche.nightのチケット買えなかった椰子は挙手

170:デフォルトの名無しさん
07/05/08 20:22:24
>>169


171:デフォルトの名無しさん
07/05/08 21:01:43
>>169


チャットは何時からやるんだろ?のぞきにいこっと

172:デフォルトの名無しさん
07/05/08 22:08:30
>>171
ガラス張りだから職安通りから見えると思う
URLリンク(www.loft-prj.co.jp)


173:デフォルトの名無しさん
07/05/09 19:59:17
いまやってるよ。
URLリンク(www.lingr.com)

174:デフォルトの名無しさん
07/05/09 23:47:53
gauche.night の感想。スタッフ各位乙。
あっと言うまに終わったけど面白かった。

座談会。笑えたけどもっとつっこんで欲しかった。matz の扱い悪すぎw
生えんどう氏や生dan kogaiや生nobsunが見れて嬉しい。

VNC を使った奴がデモとしては一番うまかった。
mephisto のデモ、一度もちゃんとしたの見たことなくて残念
schemer は黒田氏に釣られすぎw

あとほぼ全員、ダイエットしろよ('A`)

175:デフォルトの名無しさん
07/05/10 00:55:09
結論としては黒板偉大なり

176:デフォルトの名無しさん
07/05/10 19:33:14
>>174
>ダイエットしろよ('A`)

そうなのか。

177:デフォルトの名無しさん
07/05/10 20:05:43
ワーキングプアだから俺は太らない

ようやく一つ勝った

178:デフォルトの名無しさん
07/05/11 01:56:03
gauche.nightは黒田氏大暴れしたみたいだなw
shiroさん vs 黒田氏の激論見たかった

しかしほんとうに黒板使うとはwww

179:デフォルトの名無しさん
07/05/11 06:02:30
まぁここでネタ拾ったんだろう。

180:デフォルトの名無しさん
07/05/11 23:06:18
性格から考えて黒田氏はこんな所見てないだろw

なかなか鋭いツッコミ入れてるなぁ
やっぱり切れ者ではあるんだな

181:デフォルトの名無しさん
07/05/12 18:40:09
MIT-Schemeをちょっといじってみたんだけど、
教育用としては本当に優れているね。
さすがだわ。

182:デフォルトの名無しさん
07/05/12 18:48:35
>>181
どう優れてるのか語ってくれ

183:デフォルトの名無しさん
07/05/12 18:52:00
>>182
たとえば開き括弧と閉じ括弧の対応が重要だってことが身をもってわかるわけよ。

184:デフォルトの名無しさん
07/05/12 19:00:04
それぐらいはC言語でもわかるぞ

185:デフォルトの名無しさん
07/05/12 19:11:35
>>184
いやC言語は=の数が大事だという点の教育に主眼を置いて設計されているはず。

186:デフォルトの名無しさん
07/05/12 19:14:54
>>185
そんな事はないだろw

187:デフォルトの名無しさん
07/05/12 19:38:49
まずインストールが非常に簡単でした
それからネイティブコンパイラとインタプリタの両方があることも良い点かと思いますよ

188:デフォルトの名無しさん
07/05/12 20:48:38
Cが何らかの教育に主眼を置いて設計されているなんて初耳でしたリッチー博士

189:デフォルトの名無しさん
07/05/12 21:09:28
ブラックモアキター

190:デフォルトの名無しさん
07/05/12 21:21:24
イアン、やめて~

191:デフォルトの名無しさん
07/05/12 21:22:58
この手の比較的マイナーな言語はインストールの段階で手間取ると激しく萎えるよな
始める前からこれかよ…ってw

192:デフォルトの名無しさん
07/05/13 05:23:40
速いと噂のcmulispが窓で動かない時点で萎えるよね!
sbclまんせー

193:デフォルトの名無しさん
07/05/13 12:28:47
ちょっとお聞きしますが、皆さんはどうして『Common Lisp』を選ばれたのですか?
どうして『OCaml』や『Haskell』ではないのですか?
私の場合は『Scheme』で関数型言語を学び始めたものですから、その延長で『Common Lisp』の勉強に進みました。
最近はちょくちょく『SML』なんかを触ったりしています。

194:デフォルトの名無しさん
07/05/13 13:09:10
>>192
unicode1文字が内部でも1文字になるのがSML#しかないから(マルチバイトデータでは扱える)




195:194
07/05/13 13:09:47
アンカー間違った>>193宛ね


196:デフォルトの名無しさん
07/05/13 13:28:31
>>193
動的な言語と静的な言語という意味で180度違うじゃん
つまりは、動的なものが良かったということだろう

197:デフォルトの名無しさん
07/05/13 14:09:46
そうとは限らない

198:デフォルトの名無しさん
07/05/13 14:55:27
スレリンク(tech板:841番)
の質問をした者です。

(define (f0 a b)
(let ((d1 (* a b))
(d2 (- a b))
(d3 (/ a b)))
(* (f1 d1 d2) (f2 d2 d3))))
(define (f1 x y)
(* x y))
(define (f2 x y)
(/ x y))

つづく、、、

199:デフォルトの名無しさん
07/05/13 14:57:04
OCamlは静的型付けだけど型推論を持っています

200:デフォルトの名無しさん
07/05/13 15:00:40
>>198 などと、定義されたプログラムが有った場合に、
以下の出力を得るのが目的です。

> (parse f0)
iport: (i0 i1)
oport: (o0)
node:(m0 m1 m2 m3 m4)
graph:
(m0 (* i0 i1))
(m1 (- i0 i1))
(m2 (/ i0 i1))
(m3 (* m0 m1))
(m4 (/ m1 m2))
(o0 (* m3 m4))

ここで、
i0~ :一番最初の入力データ並びを置き換えたもの。
m0~ :計算に出現する中間データを番号付けしたもの。
o0~ :最終の計算結果を番号付けしたもの。

既にマクロで隠蔽すればいいとのアドバイスを得ておりますが、
他には何か良く使われるアイデア等はありますか?
let については lambda に置き換えるとか??

201:デフォルトの名無しさん
07/05/13 15:04:07
>>193
学生時代は Ocaml や Haskell とかの強い型付けの信奉者だたよ。
まだ Ocaml はたまに使ってるなー。Haskell は頭悪い俺には計算機の実行動作と
コードとの対応がすっきりしないから疎遠になった。CL はアセンブラあがりの
俺には丁度いい抽象具合ってところかな。


202:デフォルトの名無しさん
07/05/13 15:09:25
>>200 つづき。。分かりづらいですね。

scheme のプログラムについて、
それを Data Flow Graph (DFG)だと見なして、
直接にデータの流れを有効グラフにて表すことが目的です。
最初のプログラム定義は、"define" の文字列にこだわっていません。。

203:デフォルトの名無しさん
07/05/13 15:09:46
>>193
そもそも Scheme も CommonLisp も関数型言語じゃないでしょ
だからなんでって言われても見当外れも甚だしいと思うんだけど

204:デフォルトの名無しさん
07/05/13 15:11:13
>>201 さん、すみませんでした。。

205:デフォルトの名無しさん
07/05/13 15:48:23
>>203
関数型言語の本家なんだが。マルチパラダイムの方向に進化しけど。

206:デフォルトの名無しさん
07/05/13 16:05:55
srfi-1 にある iota の名前ってなにからきているんでしょうか?

他の srfi の関数だと説明的で長い名前が多いんですけど iota
だけ妙に短くて気になります。ギリシャ文字のイオタ?

207:デフォルトの名無しさん
07/05/13 16:21:27
破壊的な代入が出来るってことで、純粋な関数型言語ではないということになっていますね。

208:デフォルトの名無しさん
07/05/13 17:16:42
>>205
本家?
そんな話あったか?

209:デフォルトの名無しさん
07/05/13 17:48:53
>>193
一言でいえば別に関数型言語を使いたいわけじゃないから

210:デフォルトの名無しさん
07/05/13 18:10:56
Common Lispで大規模プログラムを組んだ場合、C++のときのような、
保守性が甚だしく損なわれるといった問題は起こらないのでしょうか?
どうもCLOSの多重継承が臭いのですよね。
やっぱりあれを使うのはC++と同様に使用を控えたほうがいいような気がするのです。
個人的にはComomon Lispは多機能すぎると感じています。
だったらSchemeを使えとなるわけで、まぁ、実際使っているのですが…。
言語使用にオブジェクト指向を組み込むのではなく、Objective-Cみたいに、
Scheme + オブジェクトシステム が理想ですね。

211:デフォルトの名無しさん
07/05/13 18:20:11
C++だから保守性が損なわれるのではないと思うけどね。

212:デフォルトの名無しさん
07/05/13 18:23:13
>>210
C++の多重継承だって別に保守性が甚だしく損なわれるとは思わないけどな。
おまえさん変な本で妙な偏見を吹き込まれてないか?

213:デフォルトの名無しさん
07/05/13 18:50:46
>>210
多重継承を使って意味不明なデザインをしてしまうような奴は、
おそらくどんなに制限された言語を使わせても保守性再利用性ゼロの馬鹿なコードを書くだろうよ。

214:デフォルトの名無しさん
07/05/13 19:13:07
それではC++ではなくCommon Lispでプログラムを書く理由は何ですか?

215:デフォルトの名無しさん
07/05/13 19:15:39
楽だから

216:デフォルトの名無しさん
07/05/13 19:58:35
>>215
まさにそれだな

217:デフォルトの名無しさん
07/05/13 20:09:47
ではOCamlではなくCommon Lispで書く理由は何ですか?

218:デフォルトの名無しさん
07/05/13 20:12:00
超うぜぇwwww

219:デフォルトの名無しさん
07/05/13 20:14:39
ただたんに関数型言語厨なんだろ
状態を表現できない、もしくは表現するのに苦労する言語は使いたくないね

220:デフォルトの名無しさん
07/05/13 20:43:16
このガキ、MLスレでも同じことやってやがるw

827 名前:デフォルトの名無しさん[] 投稿日:2007/05/13(日) 19:11:48
OCamlがCommon Lispよりも優れている所って何だろう?


221:デフォルトの名無しさん
07/05/13 20:49:14
どんな言語をやるのか迷っているのだろう
そんなやつには俺は素直にeclipseを薦めよう

222:デフォルトの名無しさん
07/05/13 20:56:21
どう考えても迷っているんじゃないだろwww

223:デフォルトの名無しさん
07/05/13 21:02:08
Rubyを使わないのはなぜですか?バカだからですか?

224:デフォルトの名無しさん
07/05/13 21:05:41
信者がうざいからです>>223

っていうかマジでそういう風に思わせたいだけだろ?


225:デフォルトの名無しさん
07/05/13 21:13:49
ruby やっている人は lisp 知らない人がほとんどだと思うけど
lisp やっている人は ruby 知らない人なんてほとんどいないんだよな
この時点でもう土俵が違う感じ

226:デフォルトの名無しさん
07/05/13 21:15:33
知っているのに、Rubyを使わずLispを使う理由はなんでしょうか?
必然性を論理的に導けるのでしょうか?
思い込みにすぎない、些細な理由はお断りします。

227:デフォルトの名無しさん
07/05/13 21:17:57
マクロがないから

228:デフォルトの名無しさん
07/05/13 21:20:12
仮定:「俺様はrubyを使わない」

ここから容易な推論により、
結論「俺様はrubyを使わない」
が導かれる。

この仮定は俺様の性質からして正しい。

229:デフォルトの名無しさん
07/05/13 21:21:40
>>226
Rubyも使うよ
なんでも使う

230:デフォルトの名無しさん
07/05/13 21:23:02
どうしてSchemeでは不満なのですか?
私はSchemeでおなかいっぱいですが…。

231:デフォルトの名無しさん
07/05/13 21:27:50
どうしてCommonLispでは不満なのですか?
私はCommonLispでおなかいっぱいですが…。

232:デフォルトの名無しさん
07/05/13 21:36:21
>>226
おまえの態度が気に入らないから使わない。


233:デフォルトの名無しさん
07/05/13 21:40:37
知っているのに、CommonLispを使わずSchemeを使う理由はなんでしょうか?
必然性を論理的に導けるのでしょうか?
思い込みにすぎない、些細な理由はお断りします。

234:デフォルトの名無しさん
07/05/13 21:41:35
典型的な釣りだろ。

235:デフォルトの名無しさん
07/05/13 21:45:55
>>193

  808 名前:デフォルトの名無しさん[] 投稿日:2007/05/12(土) 20:30:53
   Scheme/Common Lispではなく、SML/OCamlを選んだ理由を教えてください。

  関数型言語ML(SML, OCaml, etc.), Part 4
  ( スレリンク(tech板:808番) )


236:デフォルトの名無しさん
07/05/13 21:52:22
言語なんてもんは、その都度、場合によっては処理単位毎にでも、
必要に応じて問題に適したものを選べばいいんだ馬鹿者。

237:デフォルトの名無しさん
07/05/13 22:47:28
そうだよね。何故かLispをやってる人はRubyとかOCamlとか別の言語を使わないと思ってるらしい。
というかそれぞれの人がひとつの言語しか使わないと思ってるらしい。
それは典型的な素人の思いこみで、普通のプログラマは状況に応じてマッチした言語を選択するんだよね。
いくつもの言語をマスターしている。

たしかにLisp系は柔軟性が高くていろんな事が楽にできちゃうからこればっかり使っちゃうってのもあるけど、
それにしたってたとえばRubyの方が楽にできると思えばそっちを使うし。

238:デフォルトの名無しさん
07/05/13 22:50:01
黒板に書くならScheme、そうでないならCommon Lispだな。

239:デフォルトの名無しさん
07/05/13 22:50:04
>>206
> ギリシャ文字のイオタ?

元ネタは APL の原始関数イオタだと思う.


240:デフォルトの名無しさん
07/05/13 23:44:43
atoi を逆にしたと思ってた

241:デフォルトの名無しさん
07/05/13 23:48:00
>>217
Common Lispのほうが楽だから
>>223
Common Lispのほうが楽だから
>>230
Common Lispのほうが楽だから

242:デフォルトの名無しさん
07/05/14 00:15:22
>>239
ありがとうございます。すっきりしました。

ι6 で 1 2 3 4 5 6 になるんすね。へぇ~。
URLリンク(homepage3.nifty.com)

243:デフォルトの名無しさん
07/05/14 02:30:42
>>210
CLOSハC++ナドトクラベテ ユルヤカナ オブジェクトシコウ+アルファ
ダヨ。ユルヤカナオカゲデ、C++ナドトクラベテ スバゲティニナリニク
イカモ。ナゼナラ ソウショウカンスウト メンバカンスウノ チガイガ
オオキイナリ。
コモンリスプハ オモメノケイサントダイキボニナルモノ デユウリニナ
ル。ソレイガイノトコロデハ ユウイセイガ ムカシニクラベ テスクナ
ク ナッタトオモウ。
ソケットヤ スレッドカンレンノ カンスウノ ANSIカヲハヤクススメ
テホシイ。10ネンノアイダニヒツジュヒンガフエタ。

244:デフォルトの名無しさん
07/05/14 03:29:34
昔の電報キター!

245:デフォルトの名無しさん
07/05/14 03:37:47
イオタって聞くと、『ランボルギーニ・イオタ(レプリカ)』ってキャプションのついた写真を思い出してしまうのは秘密。

246:デフォルトの名無しさん
07/05/14 03:49:01
>>243
10年どころか、Common Lispが生まれて20年以上だもんな。
そろそろソケット、XML、Unicodeあたりを標準に取り込んでもらいたいものだ。

247:デフォルトの名無しさん
07/05/14 04:13:44
スレッドもね >> 標準

248:デフォルトの名無しさん
07/05/14 21:43:53
とりあえずScheme極めてみるわ
それからOCamlやろうと思うんだ
な~にがCommon Lispだよ

249:デフォルトの名無しさん
07/05/14 21:46:36
MLやるなら最初からMLでいいと思うんだ

250:デフォルトの名無しさん
07/05/14 21:47:56
勝手に極めてろw

251:デフォルトの名無しさん
07/05/14 23:34:33
249 :デフォルトの名無しさん :2007/05/14(月) 21:46:36
MLやるなら最初からMLでいいと思うんだ


だってSchemeのほうがかわいいじゃんw

252:デフォルトの名無しさん
07/05/14 23:37:58
かわいいのか?

253:デフォルトの名無しさん
07/05/15 00:06:21
まるっこくてぽにぽにしてるカンジ

254:デフォルトの名無しさん
07/05/15 03:43:59
えー?
ちんまりしてきゅっとしてる感じだなぁ

255:デフォルトの名無しさん
07/05/15 03:54:19
schemeハハヤクテケイリョウナノデ '86レビン トイウインショウデス。


256:デフォルトの名無しさん
07/05/15 11:04:28
かわい・い 《形》 (カワユイの転。「可愛い」は当て字)
(1)いたわしい。ふびんだ。かわいそうだ。三体詩抄「万民の枯骨となりたるは―・い事ではをりないか」
(2)愛すべきである。深い愛情を感じる。「―・い我が子」「―・い声で歌う」
(3)小さくて美しい。「―・いスズランの花」
(岩波書店「広辞苑 第五版」より引用)

(1)の意味だったら厭だな

257:デフォルトの名無しさん
07/05/15 12:35:07
チョークでものを書くあの感触が好きなら
Schemeをやらない手は無いよな。

258:デフォルトの名無しさん
07/05/15 19:28:06
爪で黒板を引っ掻く「キキィィィー」って音が好きなら
Schemeをやらない手は無いよな。

259:デフォルトの名無しさん
07/05/15 21:51:34
黒田ちゃんの攻撃来ました

GaucheNight (About Scheme cont.)
URLリンク(cl-www.msi.co.jp)

仕様があいまいだから許さんって事?

260:デフォルトの名無しさん
07/05/15 22:09:44
>>246
正規表現とFFIも☆逸す

261:デフォルトの名無しさん
07/05/15 22:32:02
R*RSの曖昧さは、Schemeに与えられた唯一にして最大の自由かもしれん。
良いか悪いかはわからん。

262:デフォルトの名無しさん
07/05/15 22:39:35
通読した事も無いくせに

263:デフォルトの名無しさん
07/05/15 22:43:49
>>260
普通の正規表現も入ってもいいけど、パターンをS式で書けたりするとさらに萌えるな

264:デフォルトの名無しさん
07/05/15 22:51:48
Schemeにマクロはないっていうがsytax-rurlesとかは何でマクロじゃないんだ?
あと、sytax-caseは非標準だけど、これはマクロなのか?
まあ、これがマクロなら、ほとんどの処理系syntax-case備えてることから、
Schemeには実質マクロがあるようなもんだといっていいと思うのだが。

265:デフォルトの名無しさん
07/05/15 22:51:52
>>259
さっそくshiroたんが反論してるね。
残念ながらレベル高すぎてついていけないorz

266:デフォルトの名無しさん
07/05/15 22:56:02
あの文字列の形が正規表現の正規表現たる所以であって、S式にしたらぶちこわしだ。
マクロでもってオートマトンコードに変えるんなら意味なくもないが。

267:デフォルトの名無しさん
07/05/15 23:15:31
>>262
焼酎飲みながらのことが多いですが、何度か通読しておるですよ。
6-2-3の冒頭なんかが端的にその精神を表しているように思うのですけれど。
規定されていない部分についての実装の挙動の規定というのは、シラフでじっくり読んでもほんの僅かしか確認できないし。

268:デフォルトの名無しさん
07/05/15 23:26:23
>>263
elispにあるみたいな表記?

269:デフォルトの名無しさん
07/05/15 23:31:35
反論ってこれかぁ

Scheme:マクロ:CommonLispとの比較:意味論
URLリンク(practical-scheme.net)

オレもさっぱりだw

270:デフォルトの名無しさん
07/05/15 23:48:53
>>266
perl6 の rule 見たいな感じ?

271:デフォルトの名無しさん
07/05/16 03:39:20
とりあえず現時点(R5RS)では、黒田の指摘は的を射ているということは分かった。
実装的に問題なければいーじゃんとする立場からは遠く離れた高みでの議論ですなあ。

272:デフォルトの名無しさん
07/05/16 16:30:23
おれC厨だけど、変数の代入はしないように気をつけてるよ。

273:デフォルトの名無しさん
07/05/16 16:32:04
Cは関数型言語だからな。それくらいの配慮は欲しいところだ。

274:デフォルトの名無しさん
07/05/16 16:40:36
>>273
> Cは関数型言語だからな。
???


275:デフォルトの名無しさん
07/05/16 17:09:59
関数型... 関数を通して返す値が常にあるもの。y=f(x)の関係さ。
これが一番広い意味の関数型言語の定義だと思うんだが。
純粋か不純かは関数の中で、変数の値を変化させる事が可能かどうかの
違いじゃなかったっけ?

Cはvoid型のように返す値がないものもあるので、関数型とは言わない。

276:デフォルトの名無しさん
07/05/16 17:12:34
ということは、「scheme界へ黒船襲来」に迎撃出来なかったってことか。

277:デフォルトの名無しさん
07/05/16 18:09:03
Haskellの勉強をしてからC言語やると天才になれる。
C言語で関数言語的なスタイルでプログラミングするんだ。
Lisp厨には理解出来ないか?

278:デフォルトの名無しさん
07/05/16 18:48:52
毎度のことながら言語比較厨は馬鹿っぽいな

279:デフォルトの名無しさん
07/05/16 18:57:16
馬鹿はおまえだよ
自覚しろ

280:デフォルトの名無しさん
07/05/16 19:21:08
>>277
>C言語で関数言語的なスタイルでプログラミングするんだ。

不可能ではないが、Cで関数言語的な事をやりたいならば、
関数ポインタは押さえておきなさい。

あとは、こちらより、haskellのスレに出かけて師を探せ。
じゃあがんばれよ。


281:デフォルトの名無しさん
07/05/16 19:24:18
高階関数がムズいぜ。

282:デフォルトの名無しさん
07/05/16 19:31:55
281 :デフォルトの名無しさん :2007/05/16(水) 19:24:18
高階関数がムズいぜ。


むしろ痒いよw

283:デフォルトの名無しさん
07/05/16 19:59:44
間を取ってムズ痒い

284:デフォルトの名無しさん
07/05/16 20:39:41
>>275
> 関数型... 関数を通して返す値が常にあるもの。y=f(x)の関係さ。
scheme の set-car! とかは関数だけど値を返してるといえるんだろうか。

> 純粋か不純かは関数の中で、変数の値を変化させる事が可能かどうかの
> 違いじゃなかったっけ?
代入があれば純粋ではないのはそうだろうけど、
代入がないからって純粋とは限らないんじゃないかな。
普通は副作用をもたないものを純粋というのでは?

285:デフォルトの名無しさん
07/05/16 20:57:24
純粋な関数型言語と言われているHaskellでも間接的な方法でなら代入できるよ
値を返す関数を関数の中に織り込むの

286:デフォルトの名無しさん
07/05/16 21:12:03
関数型厨は巣に帰れ。Lispが関数型かどうかなんてLisperにとってはどうでもいい問題だ。

287:デフォルトの名無しさん
07/05/16 21:38:51
カルト乙w

288:デフォルトの名無しさん
07/05/16 22:11:29
>>284
schemeのset-car!みてぽかーんとしてしまった。#t #fどっちか
返せばいいのに。

>普通は副作用をもたないものを純粋というのでは?
代入の事を指していたのではなくて、このことを指していた。
関数の中で変数が変化するのは、破壊的だと考えられる。
一度決まった変数をいじらないことをさしていて、代入の有無ではないです。

289:デフォルトの名無しさん
07/05/16 22:22:54
>>274
ほら、アレじゃね。C++ は参照透明な言語ですっていう一連のネタの続きじゃないの。
副作用の為のシンタックスシュガーが豊富に用意されていますって奴w

290:デフォルトの名無しさん
07/05/16 22:26:02
ん?
関数型言語でしょ?
URLリンク(d.hatena.ne.jp)

291:デフォルトの名無しさん
07/05/16 22:33:10
Immature Lisp 萌えw

292:デフォルトの名無しさん
07/05/16 23:17:02
ruby スレ痛い事になってるな

293:デフォルトの名無しさん
07/05/16 23:21:12
何その嵐依頼

294:デフォルトの名無しさん
07/05/17 21:01:47
R5RSとにらめっこしながらSchemeを勉強中なのですが、
未束縛のxがあるとして、
(define-syntax foo
 (syntax-rules () ((_) (define x 100))))
(foo)
としたあと、xが100になる処理系(Gauche,scm,guile)とxが未束縛のままの処理系(Gambit-C,scheme48,MzScheme)があるのですが
マクロ変換子のスコープってどうなってるんでしょうか
予想としては(syntax-rules ... )まで(後者の挙動)かなぁ、と思うのですが

295:デフォルトの名無しさん
07/05/17 21:49:50
トップレベルじゃなければ大体の処理系では前者になるんじゃね?

296:デフォルトの名無しさん
07/05/17 21:52:11
>>294-295
petite chez schemeではそのマクロを定義しようとした時点でエラーになった。

297:デフォルトの名無しさん
07/05/17 21:54:04
>>296
ハイジニックな性質を守るためにはそれが正解だろう。

298:デフォルトの名無しさん
07/05/17 22:38:01
>>296
ならねーよ。
もしかして全角空白ごとコピペしたんじゃね?

299:294
07/05/17 22:42:27
Gaucheは
> (foo)
> x
→ 100
なのに
> ((lambda () (foo) x))
だと、未定義もしくはlambda呼び出しの前の値です
((lambda () (foo) x))が100を返すけどトップレベル束縛にならない処理系もあって訳分からなくなってきました…
(foo)でスコープが閉じてその外では100にならないのが正しいと思うのですが

300:デフォルトの名無しさん
07/05/17 23:00:07
マクロのかわりができなきゃ何のために導入するの?

301:デフォルトの名無しさん
07/05/17 23:01:20
そういうのにストレス感じる人はコモンリスプへいらっしゃいw

302:294
07/05/17 23:05:20
>>300
defineは内部定義になってもset!は可視の束縛場所の値の変更ですから
使えるのではないでしょうか

内部定義だからxは自由参照じゃないからリネームされて外側のスコープの値を変更しない…んですよね?
保険的マクロ二加えて古典的マクロとgensymをR6RSに入れてくれれば良いのに

303:デフォルトの名無しさん
07/05/17 23:18:22
>>302
syntax-caseが導入予定。
古典的マクロはsyntax-caseで実装可能。

304:294
07/05/18 14:41:54
>>303
syntax-rulesの表現力に不満がある訳じゃなくて
(まだ自分はそんなレベルじゃないです)
実装が難しくて挙動が処理系依存になっているのなら
ポータブルな古典的マクロも標準に入れてほしいと思っただけです

syntax-rulesでスコープが閉じてるとしたら
マクロでdefineを使用すると必ず内部定義になってしまうから
R5RSのマクロの項でトップレベル定義のdefineについて言及していることへの辻褄が合わなくなってしまいますね
でも閉じてない(マクロ使用と同じスコープ)なら
そのマクロは定義が許される文脈でしか使用できなくなりますね
でも識別子の衝突を避けるためにリネームされるってことは
新しいスコープができている事に他ならない気もしますし
どっちなんでしょうか

305:デフォルトの名無しさん
07/05/18 15:33:40
Scheme用のいいGUIツールキットってないかな・・・

306:デフォルトの名無しさん
07/05/18 17:39:53
処理系によりけり。

307:デフォルトの名無しさん
07/05/18 17:56:30
同じOS上でも処理系毎に違うのなんとかならんのだろうか?


308:294
07/05/18 18:40:13
言葉がわかりづらい…
束縛→場所をユニークに表すもの
束縛する→識別子を場所またはマクロ変換子に対応づける
参照→場所から値を取り出す事
という解釈で良いんでしょうかね
束縛するはともかく他の2つは直感的な理解と違う解釈な気がしますけど

内部定義のduplicate bindingについてはR5RSでは言及されてないようですけど
内部定義のdefineは完全に等価なletrec変換できるって書いてあるので
暗黙的にduplicate bindingは禁止なんでしょうね
でも処理系によって許すものと許さないものがあるようです

syntax-caseで使用する識別子'_'はマクロ名を表すって説明してるサイトもありますけど
必ずしもそうじゃないんですね
パターンリストの先頭の識別子はパターン変数にならず、
マクロ名と見なされるってだけなので
(define-syntax foo (syntax-rules () ((bar _) (begin (display _) (newline)))))
見たいに書くとパターン変数として使えるんですね

309:デフォルトの名無しさん
07/05/18 20:00:03
>>306
じゃあGaucheで

310:294
07/05/18 20:08:42
あ、自分のレスみて気がつきましたが
パターン変数はいわばメタ変数で実体を持たないから
束縛を隠蔽する事はあっても新しい束縛の導入にならないんですね
じゃあR5RSの4.3のマクロの項で述べられている「束縛の挿入」は束縛コンストラクタを指している
そしてその束縛は(リネームされるから)マクロ使用の周りのものとは異なるわけですね
だからmzschemeやGambit-Cやscheme48の挙動が正しい

311:デフォルトの名無しさん
07/05/18 21:45:48
>>308
束縛という日本語が、Lispを無駄に難解な言語だと誤解させている部分はあるかもしれないねえ。
単にまんまバインドと言うほうがわかりやすかったりして。言葉の意味をあまり考えないで済む分。
似たようなのに「関数」てのがあるね。もともとfunctionの中国語読みを無理やり函数なんて漢字に当てたもんだから、
プログラミングを初めて学ぶ人の中には、関数て語で混乱する人も少なくないらしい。
遠山啓先生なんかは何十年も前の著作で、functionは「函数」じゃなくて「機能」でいいじゃないかと書いていらっしゃる。

312:デフォルトの名無しさん
07/05/18 21:49:07
支離滅裂だな
「私は漢字苦手です」の一言で済むだろ

313:デフォルトの名無しさん
07/05/18 22:03:55
オレも用語法に付いては同意見だな。 >> 英語そのままで良い
関数は違和感を覚える前に慣れてしまったけど、
理系の人間の国語センスの無さには絶望する。

314:294
07/05/18 22:05:51
うーん、あまり複雑に考えなくていいのかもしれません
構文束縛を除いて考えると
束縛とは
({let,let*,letrec} ((ここにある識別子 value) ...) body)
(lambda (ここにある識別子  ...) body)
(内部定義のdefine ここにある識別子 expression)
(トップレベルのdefine ここにある識別子、ただし未束縛 expression)
参照とは
識別子のうち、束縛でないもの
束縛の別名が束縛識別子、参照の別名が自由識別子って言う解釈で良いのでしょうか

>>311
束縛変数、自由変数だけならλ式みたいで分かりやすいんですけどね
束縛する、束縛、~に対する束縛、~への束縛、いろいろ種類があるので分かりにくいです

315:294
07/05/18 22:11:33
「識別子は場所に束縛される」
この表現は解釈の余地もなく分かりやすいのですが
それ以外の「束縛する」、「束縛」などが分かりにくいですね

316:デフォルトの名無しさん
07/05/18 22:13:20
用語なんて慣れの問題だと思うけどね

317:デフォルトの名無しさん
07/05/18 22:27:27
>>313
functionなんて、今の関数よりはもともとの函数のほうが箱(函)をイメージして意訳してるので、
数学的な意味では関数よりも原語に近いイメージなんだけど、んなもん言われなきゃ気づかないよってのが痛いよなあ。
函→関に変わったのも、函の数て何よ?てなことからなんだろうし。
その点、「実装」てのは実に優秀な訳だと思う。見た瞬間にイメージが沸く。

318:デフォルトの名無しさん
07/05/18 22:45:17
まぁでも "Lisp" という単語を、日本語として適当な語句に訳せって言われたら難しいよね。
何か以前も同じ様な話題があった様な気がするけど…

;; 無理矢理話題をスレの趣旨に近付けてみた。

319:デフォルトの名無しさん
07/05/18 22:45:37
>>317
函→関は当用(か常用)漢字の問題

320:317
07/05/18 22:57:22
>>319
恥ずかしながら存じませんでした。勉強になりました。
しかし、音が同じってだけで漢字を変えるってのもどうかとw

321:デフォルトの名無しさん
07/05/18 22:59:31
ま、周りに混乱を撒き散らして俺擁護を定着させるより
今定着している擁護で理解するほうがよっぽど楽だな。

322:294
07/05/18 23:00:34
314は全然間違いでしたね
(lambda () x)と((lambda () x))では違いますから
評価される識別子→参照
評価されない識別子→束縛
ならいいでしょうか

323:294
07/05/18 23:05:48
あー、でも'xとかを束縛とは呼べない気がしますから
今は評価されていないけどいずれ評価されうる識別子→束縛
かな?

324:デフォルトの名無しさん
07/05/18 23:08:09
>>320
音だけの問題じゃないぞ。
数と数の関連を表してるという意訳でもある。

325:デフォルトの名無しさん
07/05/18 23:47:31
>>323
(eval 'x)
……とか言ってみる
いや、そんなによくわかってないんだけど

326:デフォルトの名無しさん
07/05/19 00:17:17
関数の結果が解っつうのも…
関連性ほどけちゃってるじゃん

327:デフォルトの名無しさん
07/05/19 00:49:34
お前らがLispからイメージする色ってなによ?

たとえばRuby=>赤、Perl=>青、Python=>俺は紫なんだけど
Lispってイメージわかないんだよなぁ。しいて言えば無職ってかんじ。

328:327
07/05/19 00:50:54
oops
x無職
o無色

329:デフォルトの名無しさん
07/05/19 00:53:08
黄色に決まってるじゃん

330:デフォルトの名無しさん
07/05/19 01:04:20
Perlは黄色で、Lispの方が青っぽいなあ
Lispは透明感がある感じ。

331:デフォルトの名無しさん
07/05/19 01:11:55
>>327


332:デフォルトの名無しさん
07/05/19 01:15:30
紫かなあ。ANSI Common Lisp の表紙が紫だから。

333:デフォルトの名無しさん
07/05/19 01:23:10
Ruby ・・・ ルビー色
Perl ・・・ 真珠色
Python ・・・ ニシキ蛇色
Lisp ・・・ ポール色

334:デフォルトの名無しさん
07/05/19 01:26:40
Python 青紫 Common Lisp 透明で少し青みがかかってるちょいとつや消し
Ruby 赤 Perl 黄 Scheme 明るい青
C やや白っぽい黄 C++ ドドメ色
AWK 赤茶色 sed 黄
Ocaml 肌色

335:デフォルトの名無しさん
07/05/19 07:28:21
>>316
君が思うまでもなく、みんな慣れの問題についての話をしてるんだよ。
何のメリットも無いのに、慣れるための壁を高くしてそうな日本語訳についての話。

336:デフォルトの名無しさん
07/05/19 09:22:35
Perl で黄色ってのはどういう連想なんだろう?
俺はCPANが水色だから水色を連想した。

>>334
>C やや白っぽい黄
なんかエロイな。

337:デフォルトの名無しさん
07/05/19 09:54:54
どうでもいいです。ネタがないなら無理して書き込まなくて結構です。

338:294
07/05/19 14:18:23
>>325
結局C的に言えば
参照→*&x
束縛→&x
になりますかね

339:294
07/05/19 15:35:47
いろいろ考えすぎてました

識別子は場所に束縛される
束縛は識別子が束縛されている場所
参照は識別子が束縛されている場所から値を得る

ですね

340:294
07/05/19 16:32:40
いろいろな処理系の挙動を観察してみましたが
結論としてはdefine-syntax内ではdefineは使わないほうが良いようですね
他の束縛コンストラクタは閉じ括弧によって明示的にスコープも閉じられるので解釈に曖昧さがありませんが
defineはスコープの終端が明示的ではないので処理系によって挙動がずいぶん違うようです
というか内部定義のdefineなんてものが諸悪の根源のような気もします

341:デフォルトの名無しさん
07/05/19 18:28:42
用語なんて慣れの問題

342:デフォルトの名無しさん
07/05/19 18:33:35
あだだだだだ・・・・・・
イタイねぇw

343:デフォルトの名無しさん
07/05/19 18:40:28
今日も痛いの湧いてんなぁ

344:デフォルトの名無しさん
07/05/19 18:49:10
↑なんか湧いてるぞ

345:デフォルトの名無しさん
07/05/19 18:55:09
>>339
なんか別の言葉で再定義して満足してるだけじゃね?

346:デフォルトの名無しさん
07/05/19 20:36:40
Ruby スレを荒らしてたキチガイだろ。調子のって Ruby スレで暴れてたら
Lisper が居て泣きながら帰ってきたってとこか。迷惑な…。
Ruby スレでもいらない子。Lisp スレにもどってきてもやっぱりいらない子。


347:デフォルトの名無しさん
07/05/19 20:44:33
セルビオゲゼルが提唱している、減価する貨幣。
私はそれを実現するべくLispの勉強を始めたのでした。

348:デフォルトの名無しさん
07/05/19 21:02:57
>>346
ライブラリが無いから実用的じゃないという流れでACL出されて
その後論点がまるで変わっているように見えるんだけどなぁ

というかこどもっぽい反応が目に付くような

349:294
07/05/19 21:30:05
>>342-4 >>346
スレを汚して申し訳ないですけど
私はRubyスレをのぞいた事も書き込んだ事もないですし、
CLとschemeは勿論、それ以外の言語をけなす意図もないです

>>345
新しい概念の理解ではないので、自分の理解している言葉に置き換えただけです

350:デフォルトの名無しさん
07/05/19 21:45:33
>>348
つか Ruby スレで Lisp 話やるのがスレ違いで叩き出されて当然だろ。
戻ってこられても迷惑だけど。

351:デフォルトの名無しさん
07/05/19 21:48:21
見てきただけの俺に言われても困るんだが…

352:デフォルトの名無しさん
07/05/19 21:58:47
>>350
キミも荒らしている一人じゃないか?
ほぼ書式が一緒だが

701 名前:デフォルトの名無しさん[sage] 投稿日:2007/05/19(土) 00:16:07
 >>689 バカはお前だよ。CL コミュでもライブラリ不足は長い事問題になってんじゃん。
 で、他言語のライブラリを活用しようとかって話でてるじゃん。ILC とか c.l.l とか読んでるんか?
 きみのような頭が病気な人が一人いるだけで Lisper としては迷惑なんだよ。ここは Ruby スレだし。
 
 まぁ Lisp 厨を装った荒しなんだろうけど、困ったもんだ…。

710 名前:デフォルトの名無しさん[sage] 投稿日:2007/05/19(土) 01:29:24
 >>702 救い難いキチガイだな。なんで SBCL だと思ったんだ?妄想?
 残念だけど Allegro CL 使ってるっつーの。そんでも Ruby を使うこともある。
 そんで敬意は払う。おまえみたいに比較ばっかりで何一つ使いこなせないのが一番タチ悪いよ。
 

720 名前:デフォルトの名無しさん[sage] 投稿日:2007/05/19(土) 08:35:03
 ちょwwww 荒し君 >>714 バカとかしか出なくなwww 小学生かよ。荒らし君涙目?売りは粘着だけか?
 つかどっかで半端な知識でも聞きかじってきたんだろうが、Ruby スレで Lisp ネタで論破されるとは
 どんだけヘタレなんだよ……Ruby ユーザーかつ Lisp ユーザーみたいな層の存在を考えなかったのか。

353:デフォルトの名無しさん
07/05/19 22:07:06
>>852
このスレを荒らすなよ

354:350
07/05/19 22:14:32
>>352
なんか妄想入ってきたな。Ruby スレの奴も navi2ch 使ってそうだと推測はできるけど。

355:デフォルトの名無しさん
07/05/19 23:08:23
またRUBYキチガイが暴れてるの?
アレはほんと迷惑だな

356:デフォルトの名無しさん
07/05/19 23:15:35
両方荒らして「おれってすげー」ってほくそえんでいる、寂しい奴が一人というのが正解。

357:デフォルトの名無しさん
07/05/19 23:50:16
今なら言える
ぬるぽ!

358:デフォルトの名無しさん
07/05/19 23:55:32
>>357



          ガ







                                 ッ


                                              


359:デフォルトの名無しさん
07/05/20 00:04:47
ちん剣士

360:デフォルトの名無しさん
07/05/20 00:07:29
>>354
どこら辺が妄想に見える?

361:デフォルトの名無しさん
07/05/20 00:18:03
lisp/scheme で処理系に ヌルポ って云わせてみたいんですけど
どうすればいいんでしょうか?


362:デフォルトの名無しさん
07/05/20 00:19:17
'ヌルポ

363:デフォルトの名無しさん
07/05/20 00:23:32
>>361
そんな当たり前の答えは期待していないんですけどorz


364:デフォルトの名無しさん
07/05/20 00:49:57
>>327
Rubyは赤葡萄酒色
Perlは茶色
Pythonは鉛色(ちょいメタリックぽい色)の縞柄
Lispはエメラルド色

365:デフォルトの名無しさん
07/05/20 00:56:58
>>363
そりゃ、当たり前な答えしか返ってこない聞き方してるからじゃないか?
どんな答えを期待してるのか書いてくれなきゃわからんよ

366:デフォルトの名無しさん
07/05/20 00:58:17
>>362
'ガッ

367:デフォルトの名無しさん
07/05/20 01:11:16
>>360
荒らしはいろんなところでウザがられるのが当然じゃないか?
Rubyスレのぞいたけど >>352 に引用されてる記事の前に荒らしてるから煽られてんだろ

368:デフォルトの名無しさん
07/05/20 01:19:16
>>367
2chの鉄則「荒らしに反応した奴も荒らし」
>>352は「反応する」の域を明らかに超えてるな

というか「煽ってる」って自覚があるんだな

369:デフォルトの名無しさん
07/05/20 01:29:55
自覚て。俺 (367) も同一人物ってこと?

370:デフォルトの名無しさん
07/05/20 05:25:04
香ばしい展開

371:デフォルトの名無しさん
07/05/20 09:20:54
まぁこういうアホな会話を育ててしまうという経験を積んでいくうちに
「あれ、どうやら俺は、自分で思っていたほど賢くないみたいだぞ?」
っていうのを学んでいくんですよ。

一生「会話がアホになったのは俺と違って相手がバカだから」の一点張りで生き続けるのも
たまに居ますが。

372:デフォルトの名無しさん
07/05/20 14:01:12
>>369
バレてないつもりなのか
>>367にもそのレスにもまだ特定できるほどの特徴が残ってるんだよ

373:デフォルトの名無しさん
07/05/20 14:28:42
ここで Ruby スレみたいな話をするのは止めておくれ

374:デフォルトの名無しさん
07/05/20 14:44:53
>>373
そりゃ駄目だよ
こういう馬鹿がRubyスレとか他のスレで暴れる前に釘を刺しておかないと

お前の事だけどな

375:デフォルトの名無しさん
07/05/20 14:48:14
>>372の後でも特定されるようなレスをするのはわざとなんだろうか
第三者のなりきりかな?

376:デフォルトの名無しさん
07/05/20 14:51:32
そこまで執着する理由が分からんけど、何かトラウマでもあるの?

377:デフォルトの名無しさん
07/05/20 14:54:25
>>375
もしかして自分が間違ってるかもと思ったら、それが正解だよ。
これ、俺からのアドバイスね。

378:デフォルトの名無しさん
07/05/20 15:11:51
それはチョンの陰謀

379:デフォルトの名無しさん
07/05/20 15:50:01
>>352 に引用されてるやつは元レスの荒らしが酷いからRubyスレ住人がキレたんだろ。
なんでそんなに特定したがってんだ??

689
CommonLisp が実用的じゃないって Ruby 厨はどれだけアホなんだw
で、Gauche の方が実用的だって?
Shiro 氏自身が実用で使うなら Gauche より CommonLisp とるって言っているのにwwww

702
SBCLで仕事しようとするからだろ
アホか

714
>>710は真性のアホだなw


380:デフォルトの名無しさん
07/05/20 15:58:09
>>379
こんな見え見えの釣り針に>>352って小学生同士の喧嘩か

381:デフォルトの名無しさん
07/05/20 16:01:00
>>379
「特定したがってる」んじゃなくて、
別人を装って>>352に引用されてる奴を擁護してるからお前に突っ込んでるんだよw

382:デフォルトの名無しさん
07/05/20 16:03:13


  こ

 ち

   ぬ


383:デフォルトの名無しさん
07/05/20 16:04:36
なんでこのスレ定期的に炎上するの?w

384:デフォルトの名無しさん
07/05/20 16:07:07
ところで君たちは何をそんなにムキになってるのかね?
Ruby スレがどうしたとかなんとか、そんなにムキになるほどの
ことなのかね?
そもそも何を怒ってるんだ君たちは?

385:デフォルトの名無しさん
07/05/20 17:02:31
本人キター

386:デフォルトの名無しさん
07/05/20 18:07:02
\(^o^)/オワタ
URLリンク(www.unsymmetry.org)

387:デフォルトの名無しさん
07/05/20 18:26:41
>>386
すごい勢いだな。

388:デフォルトの名無しさん
07/05/20 18:28:43
>>386
実は奥の二人の方がが、手前の人よりも重要なんだよね(;゚∀゚)=3

389:デフォルトの名無しさん
07/05/20 18:39:58
なんで乳をそんなとこから出してんの? 不思議!

390:デフォルトの名無しさん
07/05/20 20:30:42
GaucheNight前
Lisp実装時の疑問に答えるスレ

GaucheNight後
GaucheNightの記事でLispを知ったLL信者に答えるスレ


391:デフォルトの名無しさん
07/05/20 21:04:45
ここはRuby支配下ですか?
他の言語は完全に支配下に置いたんですけどねぇ・・・

392:デフォルトの名無しさん
07/05/20 21:07:38
なんか痛いのがきた

393:デフォルトの名無しさん
07/05/20 22:51:04
>>379
というかこれ自体は別に嘘言ってないよなあ
ライブラリが少ないから実用的じゃないみたいなツッコミに
商用パッケージ使わないからと言っているだけだし
相手が小学生みたいな反応に見える

394:デフォルトの名無しさん
07/05/21 03:31:13
>>391
グレアムおじちゃんがお口にλつけて仕舞いにくるぞ


395:デフォルトの名無しさん
07/05/21 05:51:37
「支配」っていうのは、とてもRuby的な概念だよね。
自己顕示欲ともPerlコンプレックスともつかない、Rubyユーザーの野望がよく出てる単語というか。
とても人間的。

Lispはどっちかというと「わかる奴だけ使う最強兵器」みたいな位置だし、
ユーザーもそういう位置で満たされてるから、言語トーク自体を楽しむ意気込みはあっても、
そこで支配というワードが来ると、それどーゆー意味だったっけ的な溝を感じる。

396:デフォルトの名無しさん
07/05/21 10:51:46
ふーん

397:デフォルトの名無しさん
07/05/21 14:13:14
「最強兵器」も「支配」といい勝負ではないか?

398:デフォルトの名無しさん
07/05/21 14:41:11
頭悪そう

399:デフォルトの名無しさん
07/05/21 14:46:33
「支配」っていうのは、とてもボールペン的な概念だよね。
自己顕示欲とも万年筆コンプレックスともつかない、ボールペンユーザーの野望がよく出てる単語というか。
とても人間的。

筆ペンはどっちかというと「わかる奴だけ使う最強兵器」みたいな位置だし、
ユーザーもそういう位置で満たされてるから、筆記用具トーク自体を楽しむ意気込みはあっても、
そこで支配というワードが来ると、それどーゆー意味だったっけ的な溝を感じる。


400:デフォルトの名無しさん
07/05/21 15:31:15
Schemeは毛筆、と。メモメモφ(・∀・)

401:デフォルトの名無しさん
07/05/21 16:34:30
鉛筆最強

402:デフォルトの名無しさん
07/05/21 18:35:45
schemeはチョークじゃなかったっけ

403:デフォルトの名無しさん
07/05/21 18:45:51
メモメモφ(・∀・)
 smalltalk (n.) [smo?to?k]] 1.文房具談義、筆記用具トーク 2. 小型のチョーク (→数奇夢)

404:デフォルトの名無しさん
07/05/21 19:55:41
Ruby信者はいつも元気だな

405:デフォルトの名無しさん
07/05/21 21:18:17
Common Lispは山羊の毛の毛筆
Schemeは馬の尾の毛だな

406:デフォルトの名無しさん
07/05/21 21:46:39
>>405
どう違うの?

407:デフォルトの名無しさん
07/05/21 21:55:05
山羊の毛は(()())で
馬の尾の毛は(().())

408:デフォルトの名無しさん
07/05/21 21:58:49
俺様Lispはあそこの毛で作りました

409:デフォルトの名無しさん
07/05/21 22:04:42

 )

 )

410:デフォルトの名無しさん
07/05/21 22:18:54

 )

 )


411:デフォルトの名無しさん
07/05/21 22:19:36
λ
(())

412:デフォルトの名無しさん
07/05/22 12:48:02
黒板偉大なり

413:デフォルトの名無しさん
07/05/22 14:22:56
今、ウェブ・サービスの多くが、
Javaや.NETベースのアプリケーションサーバや、
Perl/Ruby/PHP/Python等のLightweight Languageの上に構築されていますが、
なぜそこにLispが含まれていないのでしょうか?

414:デフォルトの名無しさん
07/05/22 14:36:04
これはひどい一本釣りですね

415:デフォルトの名無しさん
07/05/22 18:42:36
(lambda

416:デフォルトの名無しさん
07/05/22 20:08:35
らんぶだ!

417:デフォルトの名無しさん
07/05/22 21:07:15
lambda! と申したか
酷い仕様だな

418:デフォルトの名無しさん
07/05/22 21:42:35
(lambada () '石井明美)

419:デフォルトの名無しさん
07/05/22 22:03:47
>>418
それはラマダン!

420:デフォルトの名無しさん
07/05/22 22:04:44
>>419
むしろラバンバ。

421:デフォルトの名無しさん
07/05/22 22:09:05
lamborghini

422:デフォルトの名無しさん
07/05/22 23:21:41
俺ははじめてlambdaを見たとき
ふつーにランバダってよんでたな。

423:デフォルトの名無しさん
07/05/23 00:36:40
俺は脳内でラムブダとつぶやきながら書いてる。

424:デフォルトの名無しさん
07/05/23 01:01:47
馬鹿が多くてちょっとほっとした

425:デフォルトの名無しさん
07/05/23 02:13:32
ホッとするのは底なしに危険だぜ

426:デフォルトの名無しさん
07/05/23 02:22:37
底なしなど幻想だ

427:デフォルトの名無しさん
07/05/23 05:59:23
「実質的に無限」というのは「有限」という意味だからね。
なんかこう、Lisperは特にそう考えたがりそうだね。

428:デフォルトの名無しさん
07/05/24 20:48:16
lispは見なす事が自然と身に付く
それができない頭硬いバカチンに使いこなすのは無理

429:デフォルトの名無しさん
07/05/24 22:21:39
迷惑だから Ruby スレで暴れているヤツ引き取ってくれ

430:デフォルトの名無しさん
07/05/24 22:26:26
実際そうしたい

431:デフォルトの名無しさん
07/05/24 22:31:47
>>429
暴れてるのはお前だろ

432:デフォルトの名無しさん
07/05/24 23:26:53
そもそも「引き取る」という概念がおかしいな。
スレッドと訪問者の関係を、チームと選手の関係みたいに思ってるんじゃないのか。

433:デフォルトの名無しさん
07/05/24 23:30:54
ゴミはGCへ

434:デフォルトの名無しさん
07/05/24 23:42:04
クロージャー体操
はっじまっるよーーーーーー

435:デフォルトの名無しさん
07/05/26 08:24:50
>>428
>...バチカンに使いこなすのは無理 に見えた。
言語論争の次は宗教論争かと思った。

436:デフォルトの名無しさん
07/05/26 09:10:00
オーソドックスなネタですね。


437:デフォルトの名無しさん
07/05/26 09:22:46
ウェブ技術系のブログを見ると、
「やっぱPHP最強だわ」などの表現が見当たりますが、
Lispはどうなのでしょうか。

438:デフォルトの名無しさん
07/05/26 09:50:39
括弧の数なら負ける気がしないぜ!

439:デフォルトの名無しさん
07/05/26 10:06:29
少しはカッコを減らす努力をしないと
ポール・グレアムに嘲笑われるぞ

440:ジュリー
07/05/26 10:14:38
勝手にしやがれ( ゜∀゜)

441:デフォルトの名無しさん
07/05/26 13:00:49
>>438-439
URLリンク(srfi.schemers.org)

442:ジュリー
07/05/26 13:03:34
♪せめて~ 少しはカッコ付けさせてくれ~

443:デフォルトの名無しさん
07/05/26 21:50:17
>>441
それめっちゃ気持ち悪い。dylan? やっぱりかっこがいい。
かっこいいの!

444:デフォルトの名無しさん
07/05/26 22:10:11
>>442 藁。

445:デフォルトの名無しさん
07/05/26 22:33:45
curlってどうなったの?

446:デフォルトの名無しさん
07/05/26 23:41:43
>>441
なんかスカスカで見た目にかっこわるい

447:デフォルトの名無しさん
07/05/27 00:39:40
>>441
python 以上にキモい……

448:デフォルトの名無しさん
07/05/27 15:07:27
なんかMLみたいになっちゃってるね。

449:デフォルトの名無しさん
07/05/27 16:33:48
これがそんなにキモイか?

 define (fac x)
  if (= x 0) 1
  * x
   fac (- x 1)

じゃあこうしよう

 define (fac x)
 {
  if (= x 0)
  {
   1 (* x)
  }
  {
   fac (- x 1)
  }
 }

450:デフォルトの名無しさん
07/05/27 16:40:56
K&R派なオレはそのifの書き方見るとイライラしてくるんだよねw

451:デフォルトの名無しさん
07/05/27 16:44:10
>>449
{ } の代わりに ( ) にしてみてもいいかも

452:デフォルトの名無しさん
07/05/27 16:47:59
>>449
どうでもいいが式が間違ってるぞ
まあ前者はインデントが浅すぎでキモく見えるだけじゃないのか?

453:デフォルトの名無しさん
07/05/27 16:52:20
インデント文法で一番有名なPythonは20年後はもう衰退していると思うが、
この手法はSchemeと一緒に30年後も生き残っていそう。
それで、インデント文法はSchemeが元ネタだ! と騒ぐ信者が出現

454:デフォルトの名無しさん
07/05/27 16:55:51
>>442
山口百恵のロックンロールウィドウもよろしく

455:デフォルトの名無しさん
07/05/27 22:28:34
Schemeのマクロについてなんですけど、
本体の展開よりも引数の評価を先にするようなトリックってありませんかね?
構造体を定義するマクロを自分でも書いてみようと思ったんですけど、
構造体名structure-nameを与えられてmake-structure-nameという名前の関数を定義する事さえ難しいという現実に直面してしまいました。
グローバル定義だけならevalでお茶を濁す手もあるんですが…

R6RSで導入予定というsyntax-caseもちょっと使ってみたんですが、
まだ標準化されていないせいか、処理系によって違いが結構あるので
今は乗り換えるのを見送ろうと思ってます。

456:デフォルトの名無しさん
07/05/27 22:59:32
よく思うことなんだが、言葉でくどくど説明されてもよくわからん。
簡単なテストケースを書いてくれ

457:デフォルトの名無しさん
07/05/27 23:10:37
;(define-syntax my-define-structure
; (syntax-rules () ((my-define-structure name slot ...)
;                    (define (string->symbol (string-append "make-" (symbol->string name))) (lambda (…
などとして、新しいシンボルを作ってそれを束縛したいのです。
defineは第1引数に式はおろか、準引用すら許しませんから困ってます。
そこで、マクロに展開されてdefineが評価される前に引数がシンボルに展開されれば、と考えました。
これは黒田氏が指摘している問題の一つな気がします。
Shiro氏も
・せめてシンボルの生成くらいはr5rs内で出来て欲しいってのはありますね。
とおっしゃってますし、正攻法ではどうも解決できない気がします。
プリプロセサを書くしかないのでしょうか?

458:デフォルトの名無しさん
07/05/27 23:14:04
混乱してるからクドクドとなるんであって、
簡単にはテストケースを書けないんだろ。

459:デフォルトの名無しさん
07/05/27 23:15:44
defineは第一引数に関数呼び出しはおろか、特別式すら、が正しかったですね

460:デフォルトの名無しさん
07/05/27 23:18:21
>>457
前スレ172みたいなのをコンパイル時にやりたいっつーことだな。
それならやっぱsyntax-case必要だろう。

461:デフォルトの名無しさん
07/05/27 23:29:23
define-macroでできるだろ

462:デフォルトの名無しさん
07/05/27 23:30:37
>>460
うわぁ、古い方の過去ログは読んだのですが、最近のは読んでませんでした。
全く同じですね。
syntax-case使うなら、やっぱりchezでしょうか?
私は主にmzschemeかscheme48かGambit-Cなので、syntax-caseはmzschemeしか使えないし、
chezのものとは少し違うようなので、
ポータビリティを考えたらCL的マクロに逃げるのがベターか、などと考えてます。

あまり関係ありませんが、Gambit-Cのsyntax-rulesを使えるようにするファイルは、syntax-caseが使えないのになんでsyntax-case.scmなのでしょうね。

463:デフォルトの名無しさん
07/05/27 23:31:31
>>461
もちろん、CL的アプローチでは簡単です。
標準仕様の範囲でできるかどうか、という問題です。

464:デフォルトの名無しさん
07/05/27 23:49:36
syntax-caseで書くならこんなカンジか?

(define-syntax define&
(lambda(x)
(syntax-case x ()
((k sym obj)
(with-syntax
((s
(datum->syntax-object (syntax k)
(eval (syntax-object->datum (syntax sym))
(interaction-environment)))))
(syntax (define s obj)))))))

petite chez schemeで試してみたが、こういうテストケースでは動くことを確認した。

(define& (string->symbol (string-append "a" "b")) 1)
ab ;-> 1

結局のところ、今はschemeに足りないところがあるのはそのとおりだと思う。
でもな、完成されたものを使うだけってつまらないと思うわけ。
マクロに関しても色んな提案があってそれぞれ細かい部分で利点も問題点もかかえてて、
それがどう収束していくかってなかなか面白いことじゃないか。
ま、仕事で使うならそうもいってられんのだろうが。

465:デフォルトの名無しさん
07/05/28 00:05:51
仕事で Scheme 使っている人ってここにいるんですかね

466:デフォルトの名無しさん
07/05/28 00:10:20
使ってた。納品物ではなく自家ツール用だけど。最近はCommon Lispのほうが多い。

467:デフォルトの名無しさん
07/05/28 00:11:34
>>464
あなたのプログラムを見て初めて私のsyntax-caseがうまく動かなかった理由が分かりました!
ありがとうございました。

IBMにあるメタプログラミング技法を読んでsyntax-caseを勉強したのですが、
datum->syntax-objectの第1引数の(syntax k)のkはマクロ名にマッチする識別子だったんですね。
syntax-rulesではマクロ名にマッチした識別子は特に使い道がなかったので気がつきませんでした。

468:464 ◆3.JjF77I26
07/05/28 00:26:11
>>467
ここにsrfi-93の日本語訳があるぞ。
URLリンク(www.katch.ne.jp)

> 手続き datum->syntax は引き数として、
> テンプレート識別子 template-id と任意の値 datum のふたつをとる。
>
> (datum->syntax template-id datum)
>
> この手続きは template-id と同一の文脈情報をもつ、
> datum の構文オブジェクト表現を返す。 このとき、
> この構文オブジェクトは datum (訳注: template-id か)が
> 挿入されたのと同時にコードに挿入されたかのようにあつかわれる。

schemeのマクロではただシンボルを置き換えればいいってもんじゃなく、
文脈がからんでくるってこと。
ところでこの文書ではdatum->syntaxってなってるけど、
chez schemeを含むいくつかの系ではdatum->syntax-objectって名前なので注意。

469:デフォルトの名無しさん
07/05/28 01:05:53
>>468
ありがとうございます。
読んでみました。
いろいろ勘違いしているところもありました。
しばらくsyntax-caseの勉強に励もうと思います。

470:デフォルトの名無しさん
07/05/28 13:38:52
462でGambit-Cはsyntax-caseが使えないと書きましたけど
ちゃんと使えますね。
なぜか勘違いしてたみたいです。

471:デフォルトの名無しさん
07/05/28 18:02:01
syntax-caseて処理系に依存するの?

472:デフォルトの名無しさん
07/05/29 00:38:39
syntax-case 面倒臭すぎる
阿呆な質問なんだが scheme にも cl のパッケージの概念導入
できないものなんだろうか…?何か問題でもあるの?

473:デフォルトの名無しさん
07/05/29 00:39:19
srfi を書いて提案しましょう

474:デフォルトの名無しさん
07/05/29 01:05:37
Mona OS が関数型言語 Scheme のシェルを搭載してリリース
URLリンク(slashdot.jp)

475:デフォルトの名無しさん
07/05/29 01:41:35
>>472
schemeでは名前空間を分離しない(?)原則みたいなのがあるとかなんとか言ってなかっったっけ?

476:デフォルトの名無しさん
07/05/29 07:30:57
R6RSに入るんじゃなかった?>パッケージもどき

477:デフォルトの名無しさん
07/05/29 09:42:05
R6RSって出ないんじゃなかったっけ?

478:デフォルトの名無しさん
07/05/29 09:48:50
じゃR7RSで

479:デフォルトの名無しさん
07/05/29 22:22:37
もうR2D2でいいよ。

480:デフォルトの名無しさん
07/05/29 22:29:12
むしろR2D2の方がいいよ

481:デフォルトの名無しさん
07/05/29 22:34:26
100万言語に対応してるんだっけ?

482:デフォルトの名無しさん
07/05/29 22:34:41
schemeから派生した言語って何かありますか?
luaがそれっぽいですが


483:デフォルトの名無しさん
07/05/29 22:56:26
Tとか

484:デフォルトの名無しさん
07/05/29 23:14:15
4/1にc.l.lでr7rsは発布されとったよ。w
URLリンク(groups.google.co.jp)

485:デフォルトの名無しさん
07/05/30 00:29:39
luaはべつにschemeと関係ないよ


486:デフォルトの名無しさん
07/05/30 04:02:59
このスレ住人としてluaの存在ってどうよ
末尾再帰とかゲームで採用されたりとかむかつかね?
しめとくか?

487:デフォルトの名無しさん
07/05/30 04:14:07
schemeも採用すればよかんべ。

488:デフォルトの名無しさん
07/05/30 05:21:59
schemeがシェルに採用されたMonaOSが話題にならない件

489:デフォルトの名無しさん
07/05/30 05:52:53
Scheme流行りの昨今

490:デフォルトの名無しさん
07/05/30 06:00:40
Schemeは黒板専用言語のくせになまいきだな

491:デフォルトの名無しさん
07/05/30 08:54:57
確かにリリカルLispは黒板使ってたなww

492:デフォルトの名無しさん
07/05/30 10:59:04
>>486
むかつく理由が理解できない

493:デフォルトの名無しさん
07/05/30 15:20:35
>>486 は常に敵を探しているタイプ

494:デフォルトの名無しさん
07/05/30 17:36:51
小鳥みたいですね

495:デフォルトの名無しさん
07/05/30 19:36:20
歌が好きだったりしますか?

496:デフォルトの名無しさん
07/05/30 20:33:49
>>495
俺が好きなのは君だけさ

497:デフォルトの名無しさん
07/05/31 11:09:22
read-from-stringは多値を返すのですが、
それぞれを別の変数に入れる方法はありますか?

(read-from-string "459")
459
3

たとえば xとyに 459と3を入れる方法が知りたいです。


498:デフォルトの名無しさん
07/05/31 11:27:35
>>497
multiple-value-bind

499:デフォルトの名無しさん
07/05/31 11:32:57
>>498
ありがとう

失礼ですが、LISP暦は何年でしょうか?


500:デフォルトの名無しさん
07/05/31 11:35:49
multiple-value-bind とか multiple-value-setq とか。

CL-USER> (multiple-value-bind (x y) (read-from-string "459") (list x y))
(459 3)
CL-USER> (multiple-value-setq (x y) (read-from-string "459"))
459
CL-USER> x
459
CL-USER> y
3


501:デフォルトの名無しさん
07/05/31 12:55:18
letでレキシカル変数(LISPでは何?)として定義したhyoを成功のパターンで試すと正しくできますが、
失敗パターンのように要素?を""で囲むと正しく取得できません。
要素を""で囲っても正しく表引きしたいのですがLISPではどうするのでしょうか?

;=== 成功 ===
(let (
(hyo '((A 80) (B 70) (C 100))))
(print (assoc 'A hyo))
"OK"
)

○結果
(A 80)
"OK"

;=== 失敗 ===
(let (
(hyo '(("A" 80) ("B" 70) ("C" 100))))
(print (assoc "A" hyo))
"OUT"
)

×結果
nil
"OUT"

まだよくわかっていないのですが、
""とすると文字列限定される?ということでしょうか?

502:デフォルトの名無しさん
07/05/31 13:13:22
(assoc "A" hyo :test 'equal)

503:デフォルトの名無しさん
07/05/31 13:16:53
assocは普通はequal比較だから同じ文字列なら見つかると思うのだが、
数あるlisp方言の中にはそうでないのもあるのかな?

ちなみにemacs lispで実行してみたらこうなった。

(let (
(hyo '(("A" 80) ("B" 70) ("C" 100))))
(print (assoc "A" hyo))
"OUT"
)

("A" 80)
"OUT"

使ってる処理系が何かを示せばより的確な回答を返せる人がいるかもね。


504:デフォルトの名無しさん
07/05/31 13:16:56
>>502
ありがとう

皆さん、簡単に答えますね。
うらやましいです。


505:デフォルトの名無しさん
07/05/31 13:22:59
'eaualより#'equalの方がいくない?


506:デフォルトの名無しさん
07/05/31 13:41:37
>>503
えー、初心者危険

ちなみに xyzzyです。


507:デフォルトの名無しさん
07/05/31 14:07:30
>>505
なぜ?

508:デフォルトの名無しさん
07/05/31 21:46:17
>>499
エディタのカスタマイズ以外にはあんまり使ってないけど三年ちょっとぐらい

>>503
Common Lisp だと eql だよ

509:デフォルトの名無しさん
07/05/31 22:20:34
eq? アドレスの一致
eqv? 値の一致
equal? 構造の一致

文字列の一致に使えるのって
なんとなくeqv?かと思ったけど違うのね。

eqv?の立ち位置って微妙じゃね?
文字列もアトムと考えればeqv?で良い気がするけど。

510:デフォルトの名無しさん
07/05/31 22:23:46
>>507
わずかに速い気がする

511:デフォルトの名無しさん
07/05/31 22:28:07
>>508
すまん、普段emacs lispとschemeしか使わないのでCommon Lispの
ことがすっかり頭から抜け落ちていた

512:デフォルトの名無しさん
07/05/31 23:32:42
>>509
文字列も場所の列だからベクタと同じ扱いなんじゃなかろうか
string-set! とかあるし

513:デフォルトの名無しさん
07/05/31 23:51:57
あと二次元配列 O(1)でアクセスできるタイプ(効率重視)で
perlで以下のことがLISPではどのように書くのでしょうか?

*定義
$cell['A'][1] = ('国語' 100) <-- Lispのリスト
$cell['A'][2] = ('算数' 20) <-- Lispのリスト
$cell['A'][3] = ('理科' 30) <-- Lispのリスト
$cell['B'][1] = ('家庭科' 90) <-- Lispのリスト

*呼び出し
% print $cell['A'][2];
['算数', 20]


514:デフォルトの名無しさん
07/06/01 00:02:00
>>513
なんか日本語がよくわからないんだが、
多次元配列なら aref に次元の数だけ引数を渡す

(aref #2A((1 2 3) (4 5 6)) 1 2)
=> 6

ところで多次元配列って Lisp では使ったことないんだけど、どういう時使う?

515:デフォルトの名無しさん
07/06/01 00:15:09
>多次元配列って Lisp では使ったことないんだけど、どういう時使う?

まだ構文を覚えている最中で、どういう時に使うかまだでは考えていなかったのです。
LISPでは、多次元配列という考え方でなく別の方法で対処しているということでしょうか?

LISPらしい書き方を学ぶにはどうしたら良いのでしょうか?

私はPerlはかじっておりますので、perlと対比できたらわかりやすいです。

#2Aは何を意味するのでしょうか?2はニ次元Aは????
#3Bにしたらエラーになりました。


516:デフォルトの名無しさん
07/06/01 00:21:36
ちょっとは調べろよwww

517:デフォルトの名無しさん
07/06/01 00:30:49
>>514
ベタな例だけど行列とか

518:デフォルトの名無しさん
07/06/01 01:04:32
ある処理系での多次元配列の例

CL-USER>(make-array '(1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))

#20A((((((((((((((((((((0))))))))))))))))))))




519:デフォルトの名無しさん
07/06/01 01:08:02
20次元配列とかw
まあ、全て2要素にした程度でも凄いサイズになるけどな。
扱えないレベルではないけど。

520:デフォルトの名無しさん
07/06/01 01:13:53
>>501-503
Hyperspecに答えが書いていたね。
URLリンク(www.lisp.org)
のexamplesをみてみて。


521:デフォルトの名無しさん
07/06/01 01:18:38
>>514
一番ありがちなのは lispで行列計算をしている場合。ライフゲームなどの
2次元空間グラフィック。そんなところじゃないのか

522:デフォルトの名無しさん
07/06/01 04:04:33
schemeでany や every は any? every?じゃないんだな。

523:デフォルトの名無しさん
07/06/01 05:33:21
(any hoge? ...) という使い方になるわけだから俺には違和感ないな。

524:デフォルトの名無しさん
07/06/01 05:38:40
anyはブール値を返すわけじゃないからじゃね?

525:デフォルトの名無しさん
07/06/01 06:49:57
for-all、existsとの違いがイマイチ

526:デフォルトの名無しさん
07/06/02 20:21:56
このスレのレベルが急速に低下してるな……

527:デフォルトの名無しさん
07/06/02 20:25:51
...and justice for all

528:デフォルトの名無しさん
07/06/02 22:25:07
関数型系の複数のスレに、全く同じレス付けてる >>526 って何なの?

529:デフォルトの名無しさん
07/06/02 22:46:56
>>527
'((justice is lost) (justice is raped) (justice is gone))

530:デフォルトの名無しさん
07/06/02 23:21:29
>>528
休みの日にデパートの屋上から路上を眺めるのが趣味の人なんじゃないの

531:デフォルトの名無しさん
07/06/02 23:34:40
今の時代なら、休みの日にgoogleで海岸とかプールを拡大して
凝視してる人だろ

532:デフォルトの名無しさん
07/06/02 23:48:09
LIVE映像じゃないと、ちょっと行為としてしっくりこない気がする。

533:デフォルトの名無しさん
07/06/02 23:51:27
では、ライブカメラを漁ってる人

534:デフォルトの名無しさん
07/06/03 16:55:16
Lispは型推論を持たない

535:デフォルトの名無しさん
07/06/03 16:55:45
唐突にどうしたんだぜ?

536:デフォルトの名無しさん
07/06/03 17:16:00
ヒント:日曜日

537:デフォルトの名無しさん
07/06/03 17:37:08
>>536
正解!

538:デフォルトの名無しさん
07/06/03 18:34:02
LISPに ne 等しくないという等号はありますか?


539:デフォルトの名無しさん
07/06/03 18:44:09
(defun ne (x y) (not (eq x y)))

540:デフォルトの名無しさん
07/06/03 19:04:01

「等しくないという等号」にすげぇ違和感


541:デフォルトの名無しさん
07/06/03 19:09:59
そうですね

はい次。

542:デフォルトの名無しさん
07/06/03 23:27:36

pushすると
("C" "B" "A")となりますが
例えば、

(def test(x lst)
...
)

(setq lst '())
(test "A" lst)
(test "B" lst)
(test "C" lst)
(print lst)
で("A" "B" "C")とするには、どのようにtest関数を作ればよいのでしょうか?
pushした後 reverseせず、純粋に("A" "B"..というリストを作りたいです。




次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch