2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【Lisp】プログラミング言語 Clojure #2【JVM】

203 :デフォルトの名無しさん:2011/11/29(火) 21:32:55.00
>>198はメッセージの通り、docというマクロ自体を引数として与えようと事によるエラー
Clojureのマクロは今の所それ自体の「値」を直接手に入れることができない

>>200は1.2では内部関数であるprint-docが外部にむき出しになっていたのが
1.3でちゃんと外部から直接呼べないようになったので動かなくなった

ところで、要するにdocの出力を文字列として受け取ればいいんだよな?
Clojureでは標準入出力を直接使う代わりに*in*や*out*という名のvarを使い、それらがデフォルトで標準入出力になってる
with-out-strは内側で*out*を動的にStringWriterへ束縛して、*out*に出力された文字列を返り値にする
なので、こうすれば望んだ結果が得られる

(map (fn [name] (with-out-str (doc name))) '(list))

243 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)