なんだかんだ言って,ホントはみんなLispが好きなんだろ?(藁)
というわけで,語ろうや.
プログラム技術板のLisp Schemeスレ
http://pc.2ch.net/test/read.cgi/tech/1016211619/
探検
Lisp@UNIX版
1名無しさん@お腹いっぱい。
NGNGNGNG
「S飯」か。
NGNG
NGNG
のどに ( とか ) が刺さった時は
ごはんをかまずに飲むといいよ。
ごはんをかまずに飲むといいよ。
299名無しさん@お腹いっぱい。
NGNG おまいら ( とか ) 食べないでください。
あれは鑑賞するものです。
あれは鑑賞するものです。
NGNG
しっずかっなごっはんっのもっりのかげっからっ♪
301山崎13
NGNG302名無しさん@お腹いっぱい。
NGNGNGNG
そういう炊飯器を買え!
うちのはそうだ。
うちのはそうだ。
NGNG
なんだ、そういう炊飯器あるのか。
NGNG
家電板行け
NGNG
Lisp 組み込み彼女キボンヌ
NGNG
>>302
add-hook
add-hook
NGNG
そういえば add-hook って ad hoc にかけてるのかな。
309名無しさん@お腹いっぱい。
NGNG310あぼーん
NGNGあぼーん
311名無しさん@お腹いっぱい。
NGNG >>309
単にシンボル名を置き換えるだけで出来ちゃうっぽいよ。
car => キボンヌ
cdr => プ
nil => ヌルポ
cons => マターリ
eval => ジサクジエン
apply => ヤラナイカ
(プ '(香具師)) =>ヌルポ
(キボンヌ '(神)) =>神
(マターリ 'ゴルァ ヌルポ) =>(ゴルァ)
単にシンボル名を置き換えるだけで出来ちゃうっぽいよ。
car => キボンヌ
cdr => プ
nil => ヌルポ
cons => マターリ
eval => ジサクジエン
apply => ヤラナイカ
(プ '(香具師)) =>ヌルポ
(キボンヌ '(神)) =>神
(マターリ 'ゴルァ ヌルポ) =>(ゴルァ)
312名無しさん@お腹いっぱい。
NGNG t => ガッ
null? => ヌルポ?
(ヌルポ? ヌルポ)
=>ガッ
null? => ヌルポ?
(ヌルポ? ヌルポ)
=>ガッ
313Cat’s Hand
NGNG 違法サイト潰しから復讐、縁談破壊等々
何でもやらります!できないことはありません!!
悩んでいるアナタ!是非お電話ください。
必ず、お力になりますよ。 お電話ください!
全てお任せください! やってみせます!!
便利屋Cat’s Hand
http://www.cats-hand.sytes.net/
070−5459−7083
何でもやらります!できないことはありません!!
悩んでいるアナタ!是非お電話ください。
必ず、お力になりますよ。 お電話ください!
全てお任せください! やってみせます!!
便利屋Cat’s Hand
http://www.cats-hand.sytes.net/
070−5459−7083
NGNG
NGNG
結婚 夫 妻 独身 戸籍調査
NGNG
(ホシュ)
317名無しさん@お腹いっぱい。
NGNG cmucl 18e 記念アゲ
318山崎渉
NGNG (^^)
NGNG
>>318
おまいさんも Lisper だったのか。
おまいさんも Lisper だったのか。
320名無しさん@お腹いっぱい。
NGNG 嵐カキコミにレス付けるなよ
NGNG
>>291 ゴマキ様お久しぶり
322あぼーん
NGNGあぼーん
NGNG
cmucl カレント追っかけてる人居ますか?なんか、新しくウプされたバイナリ
で clocc がビルドできないんすけど…。保守も兼ねてアゲ
で clocc がビルドできないんすけど…。保守も兼ねてアゲ
324名無しさん@お腹いっぱい。
NGNG325あぼーん
NGNGあぼーん
NGNG
ちんこ nul nul po
327名無しさん@お腹いっぱい。
NGNG わぁ
328あぼーん
NGNGあぼーん
329名無しさん@お腹いっぱい。
NGNG age
330おおブレネリ
NGNG 静かなごはんの森の影から
起きてはいかが?と郭公が鳴く
郭公、郭公、郭公郭公郭公
起きてはいかが?と郭公が鳴く
郭公、郭公、郭公郭公郭公
NGNG
なんか、大分さがってるけど質問してみます。
↓この test って関数を append を使わないで再帰で書くにはどうしたらいいですか?
(defun test (list1 list2)
(let (list)
(while list1
(let ((list3 list2))
(while list3
(setq list (cons (concat (car list1) (car list3)) list))
(setq list3 (cdr list3))))
(setq list1 (cdr list1)))
(nreverse list)))
append を使えば↓な感じでいけるんですが。。。
(defun test1 (list1 list2)
(if list1
(append (test2 (car list1) list2)
(test1 (cdr list1) list2))))
(defun test2 (str list)
(if list
(cons (concat str (car list))
(test2 str (cdr list)))))
lisp 初心者に愛の手を。。。
↓この test って関数を append を使わないで再帰で書くにはどうしたらいいですか?
(defun test (list1 list2)
(let (list)
(while list1
(let ((list3 list2))
(while list3
(setq list (cons (concat (car list1) (car list3)) list))
(setq list3 (cdr list3))))
(setq list1 (cdr list1)))
(nreverse list)))
append を使えば↓な感じでいけるんですが。。。
(defun test1 (list1 list2)
(if list1
(append (test2 (car list1) list2)
(test1 (cdr list1) list2))))
(defun test2 (str list)
(if list
(cons (concat str (car list))
(test2 str (cdr list)))))
lisp 初心者に愛の手を。。。
NGNG
どうして append 使わないで再帰で書きたいのかも教えてほしいけど…
とりあえず、その条件だけならこんな感じでいけそう。
(defun test (list1 list2)
(test1 list1 list2 ()))
(defun test1 (l1 l2 lst)
(if (null l1) (nreverse lst)
(test1 (cdr l1) l2
(test2 (car l1) l2 lst))))
(defun test2 (s l r)
(if (null l) r
(test2 s (cdr l) (cons (concat s (car l)) r))))
とりあえず、その条件だけならこんな感じでいけそう。
(defun test (list1 list2)
(test1 list1 list2 ()))
(defun test1 (l1 l2 lst)
(if (null l1) (nreverse lst)
(test1 (cdr l1) l2
(test2 (car l1) l2 lst))))
(defun test2 (s l r)
(if (null l) r
(test2 s (cdr l) (cons (concat s (car l)) r))))
NGNG
>>331 見た感じ elisp だな.
(defun my-test2 (lst1 lst2)
(my-test2-aux lst1 lst2 nil))
(defun my-test2-aux (lst1 lst2 acc)
(if (null lst1)
(nreverse acc)
(my-test2-aux (cdr lst1) lst2
(my-test2-aux2 (car lst1) lst2 acc))))
(defun my-test2-aux2 (e lst acc)
(if (null lst)
acc
(my-test2-aux2 e (cdr lst) (cons (concat e (car lst)) acc))))
↓どう考えてもこっちのが効率的だとおもうが,なんで再帰でやりたいんだ??
(defun my-test3 (lst1 lst2)
(let (acc)
(dolist (e1 lst1 (nreverse acc))
(dolist (e2 lst2)
(push (concat e1 e2) acc)))))
(defun my-test2 (lst1 lst2)
(my-test2-aux lst1 lst2 nil))
(defun my-test2-aux (lst1 lst2 acc)
(if (null lst1)
(nreverse acc)
(my-test2-aux (cdr lst1) lst2
(my-test2-aux2 (car lst1) lst2 acc))))
(defun my-test2-aux2 (e lst acc)
(if (null lst)
acc
(my-test2-aux2 e (cdr lst) (cons (concat e (car lst)) acc))))
↓どう考えてもこっちのが効率的だとおもうが,なんで再帰でやりたいんだ??
(defun my-test3 (lst1 lst2)
(let (acc)
(dolist (e1 lst1 (nreverse acc))
(dolist (e2 lst2)
(push (concat e1 e2) acc)))))
334333
NGNG 激しくかぶった…鬱だ
335332
NGNG336あぼーん
NGNGあぼーん
337flatline ◆r6EONKKhcc
NGNG 大物LisperのPaul Grahamが自分のサイトで配っている著書On Lispを邦訳して公開しています.
ただしまだ1-7章のみです.しかも今は期末試験前半中なので作業再開は8月入ってからになります.
ttp://user.ecc.u-tokyo.ac.jp/~g340299/onlisp_j.{dvi,pdf,tex}.bz2
こないだム板とマ板のLisp擦れに告知したら著作権関係をクリアにしろとのお叱りを頂いたので,
しばらく取り止めていましたが,
It's fine with me if you want to put a Japanese translation
online. I doubt the new publishers will issue a Japanese
version. --pg
とのことなので,再開しました.
私はまだWizard Bookも読んだことのない廚ですので,
「ここ違ってるぞモルァ」とかあったら是非知らせて下さい.
非公式Texinfo版があるとも教わったので翻訳が終わったらTexinfo形式も考えます.
# ここで3个所目のマルチポストですがご勘弁.今だけです.
ただしまだ1-7章のみです.しかも今は期末試験前半中なので作業再開は8月入ってからになります.
ttp://user.ecc.u-tokyo.ac.jp/~g340299/onlisp_j.{dvi,pdf,tex}.bz2
こないだム板とマ板のLisp擦れに告知したら著作権関係をクリアにしろとのお叱りを頂いたので,
しばらく取り止めていましたが,
It's fine with me if you want to put a Japanese translation
online. I doubt the new publishers will issue a Japanese
version. --pg
とのことなので,再開しました.
私はまだWizard Bookも読んだことのない廚ですので,
「ここ違ってるぞモルァ」とかあったら是非知らせて下さい.
非公式Texinfo版があるとも教わったので翻訳が終わったらTexinfo形式も考えます.
# ここで3个所目のマルチポストですがご勘弁.今だけです.
NGNG
>>337 おっ、ちゃんとメールしたんだ。おつかれです。期待してます。
NGNG
(automaton see0
(see0 (0 -> see1))
(see1 (1 -> see0)))
↑みるからに醜悪で,できそこないのクサレ構文
<automaton see0>
<state name="see0">
<trn><from>0</from><to>see1</to></trn>
</state>
<state name="see1">
<trn><from>1</from><to>see0</to></trn>
</state>
</automaton>
↑最新良好のクールな新しい構文
XML マンセー
(see0 (0 -> see1))
(see1 (1 -> see0)))
↑みるからに醜悪で,できそこないのクサレ構文
<automaton see0>
<state name="see0">
<trn><from>0</from><to>see1</to></trn>
</state>
<state name="see1">
<trn><from>1</from><to>see0</to></trn>
</state>
</automaton>
↑最新良好のクールな新しい構文
XML マンセー
NGNG
ワラタ
NGNG
Lisp が流行るには
(defun (x) (* x x))
の代わりに
<defun><args><arg>x</arg></args><body><expression><fun>*</fun><args><arg>x</arg><arg>x</arg></args></expression></body></defun>
みたいな構文を導入すればいいわけですか。
(defun (x) (* x x))
の代わりに
<defun><args><arg>x</arg></args><body><expression><fun>*</fun><args><arg>x</arg><arg>x</arg></args></expression></body></defun>
みたいな構文を導入すればいいわけですか。
342犬厨
NGNG 古いからってナメてますた、正直すまんかった。
使ってみると楽しい上に便利だった。目から鱗だわ。
使ってみると楽しい上に便利だった。目から鱗だわ。
NGNG
Xanalysのサイトからw3mでHyperSpecをダウンロードしようとしたら、
HyperSpec6.0.tar.gzとかいうファイルが示されたんですが、
その実態がただのディレクトリリストで、けっきょくダウンロードできませんでした。
しかたないのでCMUのサイトから落としました。
HyperSpec6.0.tar.gzとかいうファイルが示されたんですが、
その実態がただのディレクトリリストで、けっきょくダウンロードできませんでした。
しかたないのでCMUのサイトから落としました。
344あぼーん
NGNGあぼーん
NGNG
NGNG
>>343 もう遅いけど ftp://ftp.xanalys.com/pub/software_tools/reference/HyperSpec-6-0.tar.gz だよな?
今ためしたらちゃんのダウンロードできたけど.あとは ILISP と組み合わせて快適生活を送ってください.
今ためしたらちゃんのダウンロードできたけど.あとは ILISP と組み合わせて快適生活を送ってください.
NGNG
こんなとこにもLISPスレが
NGNG
こんなところにもといわれるほど沢山ないと思うが。
NGNG
>>339
亀レスな横道だが、
> <trn><from>0</from><to>see1</to></trn>
< <trn><input>0</input><to>see1</to></trn>
ではなかろうか?
亀レスな横道だが、
> <trn><from>0</from><to>see1</to></trn>
< <trn><input>0</input><to>see1</to></trn>
ではなかろうか?
NGNG
339 のやつはどこかで見た記憶があるな.なんだったっけ?
351あぼーん
NGNGあぼーん
352あぼーん
NGNGあぼーん
354ド素人
NGNG あらら…、
大きな素数を探しに行かせたらなかなか帰ってこないなぁ。
大きな素数を探しに行かせたらなかなか帰ってこないなぁ。
355名無しさん@お腹いっぱい。
NGNG このスレ見てる中にscsh使ってる香具師って居るかな?
Schemer且つUnixerなら居てもおかしくない気はするが…
Schemer且つUnixerなら居てもおかしくない気はするが…
NGNG
NGNG
だいぶ前にちょっと入れてみて、でかさに萎えた覚えがあるが…
NGNG
>>356
http://www-internal.alphanet.ch/~schinz/scsh-faq/scsh-faq_4.html#SEC33
> Well, technically you can: just run the "scsh" command and you will
> enter a Scheme 48 session with all scsh functions available. However,
> this is definitely not suitable for interactive work: there is no
> command-line editing, no command-line history, no file/function name
> completion, no terse syntax, etc. All these features are planned, and
> Olin has a design for much of them. However, nobody found the time to
> implement them yet.
interactive に使うものではないらしいよ。
http://www-internal.alphanet.ch/~schinz/scsh-faq/scsh-faq_4.html#SEC33
> Well, technically you can: just run the "scsh" command and you will
> enter a Scheme 48 session with all scsh functions available. However,
> this is definitely not suitable for interactive work: there is no
> command-line editing, no command-line history, no file/function name
> completion, no terse syntax, etc. All these features are planned, and
> Olin has a design for much of them. However, nobody found the time to
> implement them yet.
interactive に使うものではないらしいよ。
NGNG
NGNG
clisp をログインシェルに. http://clisp.cons.org/clash.html
…やってるやついるんか?これ?
…やってるやついるんか?これ?
NGNG
NGNG
NGNG
sage
365名無しさん@お腹いっぱい。
NGNG age
366名無しさん@お腹いっぱい。
NGNG よく、emacsやsawfishなどLISPで実装されているアプリケーションは拡張性が
高いと述べられますが、
これは、pythonやrubyあたりで実装してあるプログラムなどと比較しても
やはり高いものなの?
その辺の根拠を後学のためにお教えいただきたい。
高いと述べられますが、
これは、pythonやrubyあたりで実装してあるプログラムなどと比較しても
やはり高いものなの?
その辺の根拠を後学のためにお教えいただきたい。
NGNG
処理系というか開発環境込みってのが普通だからじゃねーの?
elisp とか librep とかは lisp 的にはダメポだけど…
まぁ漏前が Python 使いや Ruby 使いならば LISP で作られた
ものより Python や Ruby で作られたもののほうが拡張性が
高いだろう。
elisp とか librep とかは lisp 的にはダメポだけど…
まぁ漏前が Python 使いや Ruby 使いならば LISP で作られた
ものより Python や Ruby で作られたもののほうが拡張性が
高いだろう。
NGNG
RubyでもEmacsと同じことが出来ますよ、基本的には。
1. Rubyでエディタを作る。
2. 外部から与えられたRubyのプログラムを素直に実行する機能をつける。
(エディタを走らせている当のRubyインタプリタ上で評価する)
これだけ。
elispはいわゆるマクロ言語ではなく、Emacsにコードを追加しているに等しいの
です。
CやC++で実装され言語処理系を内蔵しないエディタでも、マシン語を与えられて
同一プロセス内で実行する手段を提供してあれば同様に拡張性が高いと言えるかも
(誰が拡張するんだ、って感じですが)
1. Rubyでエディタを作る。
2. 外部から与えられたRubyのプログラムを素直に実行する機能をつける。
(エディタを走らせている当のRubyインタプリタ上で評価する)
これだけ。
elispはいわゆるマクロ言語ではなく、Emacsにコードを追加しているに等しいの
です。
CやC++で実装され言語処理系を内蔵しないエディタでも、マシン語を与えられて
同一プロセス内で実行する手段を提供してあれば同様に拡張性が高いと言えるかも
(誰が拡張するんだ、って感じですが)
NGNG
Lisp は詳しくないけど、組み込み言語に Lisp が多く使われているのは、
こんな理由?
1. 実装が比較的簡単 -- sexp
2. 実装を小さく出来る -- 1 と 5 から
3. 実装例が沢山ある -- プログラマなら一度は Lisp もどきを作るとか・・・
4. 表現力が高い -- sexp
5. 拡張しやすい -- macro
6. 言語として枯れている
もちろん言語としての素性も良いし。emacs に関しては、Lisp がエディタを
(絶対的に)必要とするっていう理由もあるかも。
こんな理由?
1. 実装が比較的簡単 -- sexp
2. 実装を小さく出来る -- 1 と 5 から
3. 実装例が沢山ある -- プログラマなら一度は Lisp もどきを作るとか・・・
4. 表現力が高い -- sexp
5. 拡張しやすい -- macro
6. 言語として枯れている
もちろん言語としての素性も良いし。emacs に関しては、Lisp がエディタを
(絶対的に)必要とするっていう理由もあるかも。
NGNG
簡単な実装は簡単に作れるが しかし本当に使いモノになる処理系を作るのはやっぱ
り難しい。言語的にはお手軽スクリプト用から高性能コンパイラまでカバーしてるけ
ど手軽に作れるのはやっぱり簡易的な処理系だよ。下は↓ム板より転載。
| 133 名前: Greenblatt 投稿日: 03/08/19 21:55
| どこかのハッカーが、どこかのマシンにしがみついて二週間ばかりがんばって LISP を書き、
| 「見てくれ、LISP をものにしたぞ」という。そんなことが何度だってあるだろうさ。だけど、
| それと本当に使い物になるシステムとの間には天地ほどの差があるんだよ。
り難しい。言語的にはお手軽スクリプト用から高性能コンパイラまでカバーしてるけ
ど手軽に作れるのはやっぱり簡易的な処理系だよ。下は↓ム板より転載。
| 133 名前: Greenblatt 投稿日: 03/08/19 21:55
| どこかのハッカーが、どこかのマシンにしがみついて二週間ばかりがんばって LISP を書き、
| 「見てくれ、LISP をものにしたぞ」という。そんなことが何度だってあるだろうさ。だけど、
| それと本当に使い物になるシステムとの間には天地ほどの差があるんだよ。
NGNG
ごく一般的に言って、簡単に作ればそれなりのもの、
徹底的に作ればそれなりのもの、ができるのはあたりまえですな。
んで Lisp、scheme はとくに言語の核を小さく簡単に実装できる
っつーハナシですな。
Lisper、schemer 名乗る上で、そこを抑えているかが本質的な
違いになるわけで。
emacs が lisp である理由のごく一部には AI ラボの残留思念(怨念?)
も感じますな。
徹底的に作ればそれなりのもの、ができるのはあたりまえですな。
んで Lisp、scheme はとくに言語の核を小さく簡単に実装できる
っつーハナシですな。
Lisper、schemer 名乗る上で、そこを抑えているかが本質的な
違いになるわけで。
emacs が lisp である理由のごく一部には AI ラボの残留思念(怨念?)
も感じますな。
NGNG
Lisp の *実用的な処理系* を他の言語と比較して特別簡単につくれるとは思えないがな…。
言語の核が小さいからっては Scheme くらいのを小さいっていってるのかな?
それとも eval, cons, car, cdr ... 程度の話か?
どっちにしても俺のミニマリスト的な部分は Forth のが小さいしシンプルだと告げている。
少なくとも俺は小さいからとか処理系が簡単に実装できるから云々はどーでもいい。
そこそこの性能とマクロとか使って言語仕様をカスタマイズ可能なところが Lisp の魅力。
関数型でもオブジェクト指向でもどっちも OK みたいなマルチパラダイムなところとか
なんでもアリ的な怪しさも好きだ。
言語の核が小さいからっては Scheme くらいのを小さいっていってるのかな?
それとも eval, cons, car, cdr ... 程度の話か?
どっちにしても俺のミニマリスト的な部分は Forth のが小さいしシンプルだと告げている。
少なくとも俺は小さいからとか処理系が簡単に実装できるから云々はどーでもいい。
そこそこの性能とマクロとか使って言語仕様をカスタマイズ可能なところが Lisp の魅力。
関数型でもオブジェクト指向でもどっちも OK みたいなマルチパラダイムなところとか
なんでもアリ的な怪しさも好きだ。
NGNG
どうして言語系のスレにはハナシの流れを汲めない香具師が多いんだろう
言語障害?w
言語障害?w
NGNG
ANS Forth の仕様書って読んだ事無いけど、R5RS くらいシンプルで
しっかりしてるの?
しっかりしてるの?
NGNG
FreeBSD の bootloader も Forth でしたな。謎だ。
loader.4th っていうエクステンションはふつうなの?
loader.4th っていうエクステンションはふつうなの?
NGNG
>>375
なんで?容量その他制限がキツイんだから forth 使うんだろ。
FreeBSD 以外でも Mac 方面の OpenFirmware とか forth だった記憶アリ。
そんなとこで ruby だの perl だの lisp だのを使うほうが珍しい。
なんで?容量その他制限がキツイんだから forth 使うんだろ。
FreeBSD 以外でも Mac 方面の OpenFirmware とか forth だった記憶アリ。
そんなとこで ruby だの perl だの lisp だのを使うほうが珍しい。
NGNG
C でハードコーティングしといてもそれまででと思ったので。
NGNG
保守
NGNG
SPARC マシンの OpenBoot も Forth だね。
380名無しさん@お腹いっぱい。
NGNG そういゑば、UNIX 板にも Lisp スレがあったんだね。自分はマクロの
使い方も分からないけど。
Scheme と Common Lisp のマクロって似た様な感じですか?
使い方も分からないけど。
Scheme と Common Lisp のマクロって似た様な感じですか?
NGNG
scheme のは,はじめはめんくらう.
なれるとウマー
なれるとウマー
NGNG
Scheme の syntax-rules は、単純なのはきれいに書けるよね。
でも、複雑なのがかなり書きにくい気がする。
defmacro に慣れてるせいもあるんだろうけど…
でも、複雑なのがかなり書きにくい気がする。
defmacro に慣れてるせいもあるんだろうけど…
NGNG
R5RS の letrec の定義は激しく…萎える。
某所、復活してる。
某所、復活してる。
NGNG
以前,syntax-rules を使って,例えば六っつの引数を伴うと
(+ 1 1 1 1 1 1 ) ってのに置きかえる,引数数え上げマクロを
作ったんだけど,これって関数定義内とかに使うと 6 って定数だと
解釈されてコンパイルされるんか,それともあくまで
(+ 1 1 1 1 1 1 )をやってんだかどっちだろうな Gauche
macroexpand したら (+ 1 1 1 1 1 1) になってたが,こういう最適化は
コンパイラの仕事だろうから,macroexpand ではチェックした事には
ならんだろうからなぁ…
define-macro を素直につかうべき?
(+ 1 1 1 1 1 1 ) ってのに置きかえる,引数数え上げマクロを
作ったんだけど,これって関数定義内とかに使うと 6 って定数だと
解釈されてコンパイルされるんか,それともあくまで
(+ 1 1 1 1 1 1 )をやってんだかどっちだろうな Gauche
macroexpand したら (+ 1 1 1 1 1 1) になってたが,こういう最適化は
コンパイラの仕事だろうから,macroexpand ではチェックした事には
ならんだろうからなぁ…
define-macro を素直につかうべき?
NGNG
syntax-case
NGNG
Gaucheはそういう最適化はしないよ。
> (use gauche.vm.disasm)
> (disasm (lambda () (+ 1 1 1 1 1 1)))
PRE-TAIL(6) ;; (+ 1 1 1 1 1 1)
PUSHI(1)
PUSHI(1)
PUSHI(1)
PUSHI(1)
PUSHI(1)
PUSHI(1)
GREF #<id 0x10342400 user::+>
TAIL-CALL(6)
RET
値がなくなる形で最適化されるのは、値が
捨てられるコンテキストでの定数が削除される
くらいじゃないかしら。
(たとえば(begin 1 2)の1みたいなやつ。)
> (use gauche.vm.disasm)
> (disasm (lambda () (+ 1 1 1 1 1 1)))
PRE-TAIL(6) ;; (+ 1 1 1 1 1 1)
PUSHI(1)
PUSHI(1)
PUSHI(1)
PUSHI(1)
PUSHI(1)
PUSHI(1)
GREF #<id 0x10342400 user::+>
TAIL-CALL(6)
RET
値がなくなる形で最適化されるのは、値が
捨てられるコンテキストでの定数が削除される
くらいじゃないかしら。
(たとえば(begin 1 2)の1みたいなやつ。)
NGNG
>>384
+ が再定義されるかもしれんから
+ が再定義されるかもしれんから
NGNG
(let ((+ +)) ...)
しておけば再定義は気にしなくていい
しておけば再定義は気にしなくていい
NGNG
その let の範囲は全部調べないといけないけどね。
途中で set! するようなこともできるから。
(let ((plus +))
(define (inc x) (plus x 1))
(let* ((one 1)
(two (inc one)))
(set! plus -)
(let ((three (inc two)))
(list one two three))))
=> (1 2 1)
みたいな。
途中で set! するようなこともできるから。
(let ((plus +))
(define (inc x) (plus x 1))
(let* ((one 1)
(two (inc one)))
(set! plus -)
(let ((three (inc two)))
(list one two three))))
=> (1 2 1)
みたいな。
NGNG
disasmおもちろーい
NGNG
M-expression
っていうのが結局何なのか分からんのだけれども、
誰か簡単に説明してくんない?
っていうのが結局何なのか分からんのだけれども、
誰か簡単に説明してくんない?
NGNG
ttp://squab.no-ip.com:8080/wiki/435
NGNG
>>393
thank[you]
thank[you]
NGNG
syntax-case とか fluid-syntax を試してみたいんですけど,
実装してる処理系ありますか?
実装してる処理系ありますか?
レスを投稿する
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★9 [BFU★]
- 【赤坂ライブハウス刺傷】逃走していた自衛官の男(43)を殺人未遂の疑いで逮捕 警視庁 被害女性とは知人関係 [Ailuropoda melanoleuca★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 高市首相が異例の“買春行為の罰則化の検討”に言及…世界では“買う側”に罰則を科すのが先進国のスタンダード ★2 [樽悶★]
- 「ふざけんな!」 国会議員給与、『月5万円増』報道にネット騒然 「国民が物価高で困っているのに」「定数削減とか言いながら…」★2 [♪♪♪★]
- 【硬貨】500円だと思ったら「500ウォンが入っていた」価値は約10分の1 全国で飲食店などで“500ウォントラブル”相次いで報告 [ぐれ★]
