Lisp@UNIX版 (585レス)
上下前次1-新
374: 名無しさん@お腹いっぱい。 [sage] 04/01/13 00:25 AAS
 ANS Forth の仕様書って読んだ事無いけど、R5RS くらいシンプルで 
 しっかりしてるの? 
375(1): 名無しさん@お腹いっぱい。 [sage] 04/02/05 21:36 AAS
 FreeBSD の bootloader も Forth でしたな。謎だ。 
 loader.4th っていうエクステンションはふつうなの? 
376: 名無しさん@お腹いっぱい。 [sage] 04/02/06 20:20 AAS
 >>375 
 なんで?容量その他制限がキツイんだから forth 使うんだろ。 
 FreeBSD 以外でも Mac 方面の OpenFirmware とか forth だった記憶アリ。 
 そんなとこで ruby だの perl だの lisp だのを使うほうが珍しい。 
377: 名無しさん@お腹いっぱい。 [sage] 04/02/06 20:48 AAS
 C でハードコーティングしといてもそれまででと思ったので。
378: 名無しさん@お腹いっぱい。 [sage] 04/03/09 23:07 AAS
 保守
379: 名無しさん@お腹いっぱい。 [sage] 04/03/16 01:20 AAS
 SPARC マシンの OpenBoot も Forth だね。 
380: 名無しさん@お腹いっぱい。 [] 04/03/27 00:26 AAS
 そういゑば、UNIX 板にも Lisp スレがあったんだね。自分はマクロの 
 使い方も分からないけど。 
  
 Scheme と Common Lisp のマクロって似た様な感じですか? 
381: 名無しさん@お腹いっぱい。 [sage] 04/03/29 00:02 AAS
 scheme のは,はじめはめんくらう. 
 なれるとウマー 
382: 名無しさん@お腹いっぱい。 [sage] 04/03/29 06:51 AAS
 Scheme の syntax-rules は、単純なのはきれいに書けるよね。 
 でも、複雑なのがかなり書きにくい気がする。 
 defmacro に慣れてるせいもあるんだろうけど… 
383: 名無しさん@お腹いっぱい。 [sage] 04/03/29 12:03 AAS
 R5RS の letrec の定義は激しく…萎える。 
  
 某所、復活してる。 
384(1): 名無しさん@お腹いっぱい。 [sage] 04/03/30 16:40 AAS
 以前,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 を素直につかうべき?
385: 名無しさん@お腹いっぱい。 [sage] 04/03/31 10:41 AAS
 syntax-case 
386: 名無しさん@お腹いっぱい。 [sage] 04/03/31 14:30 AAS
 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みたいなやつ。) 
387: 名無しさん@お腹いっぱい。 [sage] 04/03/31 23:36 AAS
 >>384 
 + が再定義されるかもしれんから 
388: 名無しさん@お腹いっぱい。 [sage] 04/04/01 05:25 AAS
 (let ((+ +)) ...) 
 しておけば再定義は気にしなくていい 
389: 名無しさん@お腹いっぱい。 [sage] 04/04/01 12:58 AAS
 その 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) 
  
 みたいな。 
390: 名無しさん@お腹いっぱい。 [sage] 04/04/01 16:19 AAS
 disasmおもちろーい
391: 名無しさん@お腹いっぱい。 [sage] 04/04/18 16:39 AAS
 M-expression 
 っていうのが結局何なのか分からんのだけれども、 
 誰か簡単に説明してくんない? 
392: 名無しさん@お腹いっぱい。 [sage] 04/04/18 16:40 AAS
 ちなみに 
 外部リンク:en.wikipedia.org 
393(1): 名無しさん@お腹いっぱい。 [sage] 04/04/19 22:38 AAS
 外部リンク:squab.no-ip.com:8080 
394: 名無しさん@お腹いっぱい。 [sage] 04/04/20 01:11 AAS
 >>393 
 thank[you] 
395(1): 名無しさん@お腹いっぱい。 [sage] 04/05/06 21:18 AAS
 syntax-case とか fluid-syntax を試してみたいんですけど, 
 実装してる処理系ありますか?
396: 名無しさん@お腹いっぱい。 [sage] 04/06/23 02:40 AAS
 >>395 
 slibに入ってるよ。 
 外部リンク[html]:swissnet.ai.mit.edu 
397: 名無しさん@お腹いっぱい。 [] 05/01/29 23:57:48 AAS
 schemeについての質問なんですけど、ある関数に引数を一つまたは2つとる関数を作りたいんですけど、どうやればいいですか? 
 例えばある関数fを定義して、 
 (f 4) 
 (f 3 5) 
 と入力すると前者の場合は引数1つの時の定義で動き 
 後者の場合は引数2つのときの定義で動くようにしたいんです。 
398: 名無しさん@お腹いっぱい。 [sage] 05/01/30 00:13:40 AAS
 UNIX板で訊く必然性がないなあ。ここで訊くよりム板の方がいいんじゃない。 
 (define (f arg1 . restargs) 
   ...) 
 とやれば2個目以上の引数のリストがrestargsに入る。
上下前次1-新書関写板覧索設栞歴
あと 187 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.008s