トップページ > プログラム > 2014年11月14日 > i/qlCtxO

書き込み順位&時間帯一覧

19 位/245 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000012000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Lisp Scheme Part39

書き込みレス一覧

Lisp Scheme Part39
311 :デフォルトの名無しさん[sage]:2014/11/14(金) 17:31:14.47 ID:i/qlCtxO
(make-counter)、lisp(sbcl)で書いてみたんだが、こんなんでええの?

(setf (symbol-function 'counter)
(let ((count 0))
(lambda () (incf count))))

sbcl には fset が無いみたいなのでマクロ?を使ってみたのがこれ↓

(defmacro fset (sym clj)
`(setf (symbol-function ',sym) ,clj))

(fset counter
(let ((count 0))
(lambda () (incf count))))

lisp は初めてなんで、よーワカらん…
Lisp Scheme Part39
315 :デフォルトの名無しさん[sage]:2014/11/14(金) 18:29:55.52 ID:i/qlCtxO
>>312
なるほど、どうもありがとう
ところでカウンタの値をリセットしたり、インクリメントさせずに
クロージャ内部のcountの値を取ってくるにはどうしたらいいだろう?

(f) => 2
(reset-counter 'f)
(f) => 1

(f) => 2
(get-count 'f) => 2
(f) => 3
Lisp Scheme Part39
317 :デフォルトの名無しさん[sage]:2014/11/14(金) 18:48:27.10 ID:i/qlCtxO
>>316
d、素晴らしい


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。