LISP Scheme

このエントリーをはてなブックマークに追加
151デフォルトの名無しさん
scheme :
(obj 'message param)
or (class_message obj param)
C
dispatch(obj, message, param)
or class_message(obj, param);
C++
obj->message(param);
or obj->receive(message, param);
考察
class_message形式や、
obj->messageは何を表してるのかわかりにくい。
152デフォルトの名無しさん:2001/05/10(木) 03:53
>>151
まあ確かに。
矢印を使うって発想はいいんだけど。逆の意味を連想する。
せめて、obj<-message(param);
だったらいいのにね。(と、なにかの本にも書いてあった)
153デフォルトの名無しさん:2001/05/10(木) 04:04
矢印は方向を表すためだけに使いたい。>152
obj <- message param
message param -> obj
とか。
154デフォルトの名無しさん:2001/05/10(木) 04:15
>>153
152はそういうこと言ってるんじゃないのか?
155デフォルトの名無しさん:2001/05/10(木) 04:26
>>152
'->'は元々、構造体メンバへのポインタアクセスっつう意味しかない、
低レベルな発想だからねえ・・
思わずこうしたくなるね。
obj.receive(message, param);
156153:2001/05/10(木) 04:31
なるほど>154
157デフォルトの名無しさん:2001/05/10(木) 05:08
>>82
#|〜|#というのがあった気が。処理系毎の独自拡張みたいだけど。

#|ここからコメント

ここまでこめんと|#
158デフォルトの名無しさん:2001/05/10(木) 09:25
小なり→単項演算子マイナスと紛らわしいから、
パースできないね。残念だったね。
個人的今のでいいやって感じだけど。
159デフォルトの名無しさん:2001/05/10(木) 14:26
>>151
(class_message obj param) はわかるんですが (obj 'message param)
は可能なんですか?LISPでも可能ですか?
160デフォルトの名無しさん:2001/05/10(木) 20:10
age
161デフォルトの名無しさん:2001/05/10(木) 21:39
>>159

151じゃないけど……

・schemeなら関数呼び出しフォームの先頭要素を普通に評価してその値を関数
として使うから、可能

・common lispだとあくまで((lambda ()) foo ...)と(symbol foo...)が関数
呼び出しフォームなだけだから、ムリ

です。この辺もschemeが普通のlispと比べて美しいところのひとつ。