5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  
レス数が950を超えています。1000を超えると表示できなくなるよ。

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

1 :デフォルトの名無しさん:2013/09/28(土) 11:03:28.38
JVM上で動作するLisp方言「Clojure」のスレ。

Clojure - home
http://clojure.org/
http://www.try-clojure.org/

前スレ:
【Lisp】プログラミング言語 Clojure #2【JVM】
http://toro.2ch.net/test/read.cgi/tech/1318498898/
【Lisp】プログラミング言語 Clojure【JVM】
http://hibari.2ch.net/test/read.cgi/tech/1255533519/

142 :デフォルトの名無しさん:2014/01/04(土) 02:41:55.72
あ、まちがい、出来上がった結果のvecやらseqやらをさらに遣って後から伸びる方法によるのか。(頭に足すかケツに足すか)

143 :デフォルトの名無しさん:2014/01/04(土) 18:25:37.79
>>141
mapv初めて知った
>>140
リストをベクタにしたりとか変換しないようにしとけば特に問題ないんだな

144 :デフォルトの名無しさん:2014/01/09(木) 16:16:29.71
LightTableがOSSになったぞ

145 :デフォルトの名無しさん:2014/01/09(木) 16:58:50.78
>>144
見てきた
cljsとはおもわなんだ
ちょっとびっくり

146 :デフォルトの名無しさん:2014/01/25(土) 03:02:37.00
おいしいclojure読んだけど、外部のライブラリを導入するときに、インストールまで全部オンラインでやること前提になってるけど、今はそれが普通なのだろうか
必要なアーカイブをダウンロードして、あとはオフラインでやるというスタイルはもう終わりですか

147 :デフォルトの名無しさん:2014/01/25(土) 13:52:56.12
>>146
できなくはないけど、面倒くさい。

148 :デフォルトの名無しさん:2014/01/25(土) 15:18:37.20
jarファイルダウンロードしてくる部分のこと?
yum(rpm)、gemとかと一緒だね、
leiningenとかで使ってるのは、javaのmavenレポジトリがベース
rubygems.orgとか良くダウンしてたので、その時の為に、ローカルにリポジトリのhttp://daly.axiom-developer.org/clojure.pdfミラー作ったり、yumもインストールCDからしたり出来るし。ローカルネットワークのみの場合でもproxy経由でインストールしたりする。

mavenは詳しくわからないけど、
leiningenも、ローカルにミラーしたmavenレポジトリ追加したりということは可能かと。
あとは、独自版を使いたいときのために、localinstallプラグインというのがある。

149 :デフォルトの名無しさん:2014/01/25(土) 16:42:03.33
4clojureがちょくちょくつまる
reverseなしでreverseするには空リストにintoとか
普通すらすらわかるん?

150 :デフォルトの名無しさん:2014/01/25(土) 16:53:06.44
>>148
普通にローカルの~/.m2/repositoryへ突っ込む手段はあるから問題ないんじゃ?
ソースひっぱってきてmvn installでも lein installでも使える
バイナリのjarだけを突っ込む方法はしらん;-p (~/.m2/repositoryをクローンで?)

151 :デフォルトの名無しさん:2014/01/25(土) 21:21:53.70
>>150
バイナリのjarだけつっこみたい時は、lein localrepoをつかう
ttps://github.com/kumarshantanu/lein-localrepo

152 :デフォルトの名無しさん:2014/01/25(土) 23:42:38.80
起動時間なんとかしてくれー

153 :デフォルトの名無しさん:2014/01/26(日) 11:44:45.81
jvmの起動時間て
なんであんなに遅いの?
どうにかならないもんなの?

154 :デフォルトの名無しさん:2014/01/26(日) 15:18:15.60
leinは、32bitJVMのころにあった-clientに当たるような設定つけて起動してるみたい。
なので、サーバー用途にlein runそのまま使うと遅くなることも。

Android4.4に実装されているART Runtimeみたいに、AOTで起動早くすることもできるんだけど、
現状、AOT付いてるPC向けのVMはHotSpotVMより起動が遅かったりする。

そういうば、ART Runtimeだと今のところclojureでつくったソフトが起動時にclassのverificationで落ちて動かない。

155 :デフォルトの名無しさん:2014/01/26(日) 23:53:17.89
要望にあったものではないだろうが、こんなのが
https://github.com/takeoutweight/clojure-scheme
ClojureScriptのscheme版に改造したものらしい
cljs系は面倒だけど、メンテナンスはしやすいかも。

pycljとかも、起動早いしそのまま使える。
でも、JVMに直接依存してるところは、動かない、、

こういうのって、OpenCLみたなHPC向けのコード吐けるものなら便利そう

156 :電波いっぱい:2014/01/27(月) 23:40:51.24
>>149

そういうのに多く触れて来た人ならスラスラ解けるでしょうけど、そうで無い人の方が多いでしょう。
でも、そういう問題を解いて、他の人がどのように解いているのかということを知るのが4clojureの目的だよね。

157 :デフォルトの名無しさん:2014/01/28(火) 10:27:48.13
>>156
なるほど、解いた後他人のsolutionを見ることに意味があるのか

158 :デフォルトの名無しさん:2014/01/30(木) 00:07:51.81
すみません

leiningen を reple で起動したときに、jar をどっかからダウンロードしてると思うんですけど、そのjarっていったいどこに保存されてるのでしょうか?
Windows7 です

159 :デフォルトの名無しさん:2014/01/30(木) 05:22:55.78
lein classpath とか打てば書いてあるんじゃね?

160 :デフォルトの名無しさん:2014/01/30(木) 11:22:48.47
>>158
c:/Users/<アカウント名>/.m2
ここがmavenのリポジトリの在処
lein depsでひらってくると.m2以下に突っ込まれる

161 :デフォルトの名無しさん:2014/01/31(金) 22:17:30.83
大学生協に1冊だけあったおいしい本がなくなってやがる
こんなマイナー本をピンポイントで
中身確認したかったのにorz

162 :デフォルトの名無しさん:2014/02/01(土) 00:04:22.94
おいしい本は、読者がネットに常時接続してることを前提にしている点に違和感がある

163 :デフォルトの名無しさん:2014/02/01(土) 00:30:20.21
ずっと繋がないといけない処理があったりするの?

lein使うのやめてほしいとかそいうの?

164 :デフォルトの名無しさん:2014/02/01(土) 00:34:29.85
>>163
私の開発環境は完全にオフラインだから
leinだと、USBメモリにjarファイルコピーしても、どこに配置すればいいのか分からん

165 :デフォルトの名無しさん:2014/02/01(土) 01:00:42.53
確かに。昔は、何も使わないチュートリアルがあったけど、最近はlein中心だからね。

もともとそれで動くから、
ツール系はhadoopとかみたいに、libsフォルダにがっつりjarファイルが入ってて、コマンド用意して隠蔽してたりする。

jar置いて実行できるツールは必要かもね。clojurebox

基本はこれだけど、
http://clojure.org/repl_and_main

unix
java -cp jar1:jar2:..:jarn -m clojure.main
win
java -cp jar1;jar2;...;jarn -m clojure.main

jarフォルダにいれてあれば、jar1:jar2:...:jarnを展開してくれるスクリプトみたいのあったかも。

leinプロジェクトの場合は、lein uberjarしてstandalone.jarをどっかからもってくるというて手もあるが。

166 :デフォルトの名無しさん:2014/02/01(土) 22:53:02.10
ふと思ったんだけどClojureってClojureで実装されてんの?

167 :デフォルトの名無しさん:2014/02/01(土) 23:15:13.68
バイトコードにコンパイルするのに、sdkのjavac が必要ないことだけは分かってる

168 :デフォルトの名無しさん:2014/02/01(土) 23:18:43.09
>>167
.javaなruntimeクラスとかどうやってコンパイルしてるん?

169 :デフォルトの名無しさん:2014/02/02(日) 12:57:22.64
ローカルの ~/.m2 リポジトリをUSBメモリやモバイルPCに入れて、
オフラインで lein 使用できないかな?

170 :デフォルトの名無しさん:2014/02/02(日) 13:49:18.44
>>169
$HOMEを書き換えれば使えるんじゃね?

171 :デフォルトの名無しさん:2014/02/02(日) 23:31:31.18
Clojureは今のところJavaで実装されてる。ClojureのコンパイラをClojureで書き直すプロジェクトはClojure Contribの1つとして既に走ってるよ。

172 :デフォルトの名無しさん:2014/02/03(月) 23:57:20.87
Java言語習得済み人に聞きたいんだけどメソッドの大文字小文字の命名規則ってある?
kとKの違いでプログラミングClojureのSnakeゲーム時間めっちゃとられた

173 :デフォルトの名無しさん:2014/02/04(火) 00:30:48.62
メソッド名は小文字から始まって、単語の区切りの先頭を大文字で
なので単語はアンダーバーで区切らず、そのまま連結する

というのが基本で、○○法とかの固有名詞の場合はそのときそのときで

今は日本語のメソッド名も使えるらしいが、その場合のルールは不明

174 :デフォルトの名無しさん:2014/02/04(火) 01:04:01.73
ClojureScriptでhello world書いたら1MB弱あるjsファイル吐かれて驚いたんだけどこれが普通なの?
一応pretty print切ったら600KB少しにはなった

175 :デフォルトの名無しさん:2014/02/04(火) 04:30:37.09
>>174
google closure compilerがゴリゴリ削るはずなんだけど
:optimizations が :none とか :whitespace になってたりしない?

176 :デフォルトの名無しさん:2014/02/04(火) 10:53:27.86
>>173
なるほど、そういうことか
そうやってクラス名とメソッド名を区別するわけか
thx

177 :デフォルトの名無しさん:2014/02/05(水) 06:09:12.77
haskel caml ml scala 使いのおれがclojureにうつるので今現在のおすすめ本ほしえてくれ
主要な本、英語か日本語で 特徴つけてくれたらうれしい

178 :デフォルトの名無しさん:2014/02/05(水) 06:55:56.35
日本語書籍
オーム社
プログラミング Clojure 第二版(PDF版アリ)
Clojureの基本解説書、これよんだ後はclojarsとgithub探訪で事足りるような?

技術評論社
おいしいClojure
フレームワークやライブラリの紹介集なので必要かどうかは微妙だが名前が類推できないものとかをちょろっと知るには便利

英語書籍(基本ebook)
Joy of Clojure
入門書 Programming Clojureとどちらか片方あればOK

Clojure in Action
入門書+α +αの所が良い感じ TDD, Data storage, web, DSLとか

Clojure Programming
これは読んでないのでしらない

179 :デフォルトの名無しさん:2014/02/05(水) 20:27:20.90
Very thanks

やっぱ日本語と英語じゃ理解の速度も深さもちがうから
日本語書籍 オーム社 プログラミング Clojure 第二版(PDF版アリ)
を週末に買いに行くわ

ただ、projectの組み方とか、開発環境の細かい使い方セッティングの仕方とか
かいてあるのもほしい、eclipse for java みたいなののつかいかた
lein とかの使い方、webあされば分かるんだろうけど、
まとまってるのがいい本とかで、その方が達成もあるし。

180 :電波いっぱい:2014/02/05(水) 23:26:58.73
>>179

使い方方面であれば、これはいいと思う。
http://pragprog.com/book/dswdcloj/web-development-with-clojure

webベースのいくつかのシステムを1から作り上げていく過程を解説するという流れで進んでいく。
clojureのバージョンも最新の1.5.1対応。
leiningenの説明もあり。
ideはLightTable。


さておき、Joy of Clojureは入門書では無いと思う。一通り身についた頃に読むと、clojureらしい書き方っていうのがわかる本。

181 :デフォルトの名無しさん:2014/02/06(木) 00:57:12.73
joy of clojureは本自体にそんなことが書いてあるもんなぁ

182 :デフォルトの名無しさん:2014/02/07(金) 00:45:16.62
プログラミングClojureの5,6章はJavaの前提知識がないと辛いものがあるな
7章はめっちゃすんなり読めるのに

183 :デフォルトの名無しさん:2014/02/07(金) 00:51:17.32
>>175
optimizationsをadvancedに変えたら素のJS並に減ったわ
でもこれJSのライブラリと相性悪いみたいなんで萎えた・・・

184 :デフォルトの名無しさん:2014/02/07(金) 08:52:33.77
http://otabat.hatenablog.com/entry/20121123/1353674855
細かい指定方法があった

185 :デフォルトの名無しさん:2014/02/07(金) 11:19:08.24
それを読んだので萎えた

186 :デフォルトの名無しさん:2014/02/08(土) 16:01:14.48
>>180 thanks 日本語の本読んでから見てみる

187 :デフォルトの名無しさん:2014/02/09(日) 22:02:16.24
日本語の書評があったので、転載

1. Web Development with Clojure
Clojure で Web アプリ開発する方法を調べようとして,ググり疲れた人向けです.

本書では Compojure/Ring の組み合わせについて, 一通りサンプル Web アプリケーションが動くまでを解説しています.そのほか (続く)

2. Clojure High Performance Programming
この本はおすすめなので,絶賛します.
この本の大部分は (遅くならない)普通の Clojure プログラムの書き方 の説明に費されています.

そこで,この本は次のような人におすすめです.
初級〜中級レベルの Clojure プログラマをこれから目指す入門者
(続く)


3. Clojure for Domain-specific Languages

これは、英語の書評があったけど、DSLが40ページで、残りが入門書とのこと。
あまりお勧めされてはいなかった。

似たような分野だと、
実践プログラミングDSL ドメイン特化言語の設計と実装のノウハウ

Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the JVM
がある。

そういえば、clojureの書籍での入門順は何ヶ所で見た気がする。こことか
http://www.bigjason.com/blog/a-path-to-clojure

188 :デフォルトの名無しさん:2014/02/10(月) 19:49:57.63
nilと()って分けてみたはいいけどあまりうまくなかったという感じがしない?
利便性に振った結果か、結局色んな所で同一視してるし……

189 :デフォルトの名無しさん:2014/02/10(月) 23:07:26.60
nilとfalseを分けたschemeが嫌いな人には向いてると思う>>Clojure

190 :デフォルトの名無しさん:2014/02/11(火) 00:23:41.32
というか、嫌なら、適当なシンボルを偽に割り当てればいいのではなかろうか

191 :デフォルトの名無しさん:2014/02/14(金) 20:03:15.49
プログラミングClojure第二版の10.4の

lein noir new clojurebreaker

って

lein new noir clojurebreaker

の間違いじゃね?

192 :デフォルトの名無しさん:2014/02/15(土) 08:03:30.33
kindleマーケットで100円の本買ってClojureの勉強はじめた
Android上で動くワンペインアウトラインプロセッサ作りたい

193 :デフォルトの名無しさん:2014/02/15(土) 15:29:39.97
あのkindle本、追体験出来るように書かれてるので独習にいいよね。

194 :デフォルトの名無しさん:2014/02/15(土) 23:15:27.33
seesawで表示させるとUbuntuだとテキストめっちゃ汚いんだけどWindowsだとどうなんだろ

195 :デフォルトの名無しさん:2014/02/16(日) 03:54:07.02
>>194
font設定しないと駄目じゃね?

196 :デフォルトの名無しさん:2014/02/16(日) 04:24:20.25
>>194
Javaのメソッドで直接アンチエイリアスの設定をしないと綺麗にならないよ。

197 :デフォルトの名無しさん:2014/02/16(日) 04:37:24.76
間違えた。"(anti-alias g)"でいけたわ。

198 :デフォルトの名無しさん:2014/02/16(日) 14:18:22.71
clojure-1.6.0がbetaになったらしい
https://groups.google.com/forum/m/#!topic/clojure/tseJgAi3HC4
細かい拡張とバグフィックス
あとはパフォーマンス的には、hashとstmとprotocol呼び出しの効率あがったみたい。

199 :デフォルトの名無しさん:2014/02/16(日) 18:04:34.54
>>198
hashはそんなに重いと感じたことないけどprotocolはすげーありがたい。
stmは粒度気にしてればパフォーマンスあんまり気にならなかったけど、レースコンディションの激しいものでもOKってわけじゃないよね?

200 :デフォルトの名無しさん:2014/02/16(日) 18:21:14.27
>>195
>>196
フォント設定したらそこそこ綺麗になった
thx

201 :デフォルトの名無しさん:2014/02/16(日) 23:16:52.08
>>199
単純に使ってないシステムコール(時計)を消去しただけみたい。

202 :デフォルトの名無しさん:2014/02/16(日) 23:39:30.74
もともとトランザクショナルメモリは、GILやジャイアントロックのようなロックを並列処理出来るようにしたり、書き込みが一箇所に集中しない時に使って楽するものみたいだし、
カウンターみたいなのは、合成(reduce)していく設計になるんじゃないかと思った。

203 :デフォルトの名無しさん:2014/02/16(日) 23:52:52.21
http://tnoda-clojure.tumblr.com/post/60197800824/reducers
最近知ったんだけど、reducers使うと効率いいらしい。

204 :デフォルトの名無しさん:2014/02/17(月) 00:36:36.78
>>203
カリー化ってClojureに実装されてなくね?

205 :デフォルトの名無しさん:2014/02/17(月) 05:27:34.71
>>203
勉強になった

206 :デフォルトの名無しさん:2014/02/17(月) 12:29:59.97
Quilって使ってる人居る?

207 :デフォルトの名無しさん:2014/02/17(月) 22:19:18.20
なんか怖いが第一印象

208 :デフォルトの名無しさん:2014/02/21(金) 00:37:52.59
Quilはけっこう便利
これなら手軽にClojureでゲームが作れたりするんじゃないだろうか
ただgithubのドキュメントがまさにイギリス人の英文って感じなのがあれだけど

209 :デフォルトの名無しさん:2014/02/22(土) 20:26:54.41
test

210 :デフォルトの名無しさん:2014/02/22(土) 20:46:56.31
あれ、まだ?

211 :電波いっぱい:2014/02/23(日) 22:40:30.45
あれって?

212 :デフォルトの名無しさん:2014/02/24(月) 05:52:59.34
かそりんぐ

213 :デフォルトの名無しさん:2014/02/24(月) 12:28:29.24
ID

214 :デフォルトの名無しさん:2014/02/24(月) 23:13:01.99
(every? sequential? [x y])
と書くのだるいから
(sequential? x y)
と書きたいって感じで標準の関数を拡張していくのはよくあること?

あと、R風のベクトル処理できるライブラリとかないかな?Incanterに入ってるのかな?

215 :デフォルトの名無しさん:2014/02/25(火) 22:21:14.29
>>214
ベクトル処理ならmapとReduceあるし
incanterで手軽にlapack使える

216 :デフォルトの名無しさん:2014/02/25(火) 23:53:07.13
Incaterにminusとかplusとかあったみたいね。
(plus 2 [1 2 3]) ;[3 4 5]
単純な演算にmapとか使うのめんどいからさ〜

217 :デフォルトの名無しさん:2014/02/26(水) 06:38:58.46
練習
;;;(plus 2 (1 2 3 )) → (3 4 5)
(defun plus (x lst)
(let ((ptr lst))
(while ptr
(rplaca ptr (+ x (car ptr)))
(setrq ptr (cdr ptr)))
lst))

218 :デフォルトの名無しさん:2014/03/01(土) 08:20:36.25
プログラミングclojure 2版 100page

次のコードが「ほとんどcurry」になるのがなぜかわからん

(defn faux-curry [&amp; args] (apply partial partial args))

ちなみに

(def add-3 ((faux-curry +) 3))
(add-3 7)
-> 10

となる
(ほとんどカリー化のほとんどは すべての引数が固定されたときも定数を返さないから)

219 :デフォルトの名無しさん:2014/03/01(土) 12:05:28.50
カリー化は関数を関数のチェーンに変換することで
部分適用は引数を固定することだから、かな?

220 :デフォルトの名無しさん:2014/03/01(土) 12:32:42.15
「ほとんどカリー化」というか2引数関数のカリー化だな
3引数ならpartial3回いる

221 :デフォルトの名無しさん:2014/03/01(土) 19:37:35.00
compじゃカリー化だめなん?

222 :デフォルトの名無しさん:2014/03/02(日) 10:34:04.97
org.clojure/tools.* とかの最新版ってどうやってさがしてくるん?

223 :デフォルトの名無しさん:2014/03/02(日) 21:48:58.61
apply partial partial とか絶対見たくない

224 :デフォルトの名無しさん:2014/03/02(日) 21:52:38.43
>>222

lein search tools.nrepl

とか?

225 :デフォルトの名無しさん:2014/03/03(月) 00:57:13.85
マクロを利用する関数を書きたい場合って結構あると思うんだけど、
その場合は関数じゃうまくいかなくてマクロを書かざるを得ないな

226 :電波いっぱい:2014/03/03(月) 13:30:21.16
>>225
そんなこと無いと思うけど、具体的にはどんな場合?

227 :デフォルトの名無しさん:2014/03/03(月) 19:10:02.21
関数内でよく使われるマクロはそうでもないけど
トップレベルで使われることを想定してるimportとか
with-outとかwith-precisionとかbindingを利用しているマクロを
さらに拡張しようとした場合に関数だとダメっぽいなあ

228 :デフォルトの名無しさん:2014/03/03(月) 19:41:45.36
(key val key val)のシーケンスからhash-mapに変換する関数はあるけどその逆はないのかな?
引数リストで{:as options}とかした後、そのoptionsをもとのシーケンスに戻したいんだけど
interleave keys vals で元に戻すしかないか

229 :デフォルトの名無しさん:2014/03/03(月) 20:35:19.57
>>224
おおー、ありがと。
lein searchをずっとローカルリポジトリ検索かと思ってた orz

230 :電波いっぱい:2014/03/04(火) 07:01:56.15
>>227
そういうことであれば、そうかもしれないけど、そんなことをするのって、めったにないと思う。

231 :電波いっぱい:2014/03/04(火) 07:06:01.80
>>228
(flatten (seq m))でどうかなぁ。mapになった時点で順番は失われてしまうから、元のシーケンスにはならないけど。

ところで、そんなことが必要になるシチュエーションが思い浮かばないんだけど、どういう時?

232 :デフォルトの名無しさん:2014/03/04(火) 07:52:05.70
>>231
flattenだとvalueがシーケンスの時にうまくいかないと思う
clojure.java.io/readerとか同じようにオプションをとる関数に引き渡していく際に欲しい

233 :デフォルトの名無しさん:2014/03/04(火) 21:07:58.40
LightTableのオススメの設定とかってある?

まだコレくらいしか設定してないけど
#user.keymap
"ctrl-pageup" [:window.zoom-in]
"ctrl-pagedown" [:window.zoom-out]
"alt-c" [:clear-console]
"f3" [:find.next]
"shift-f3" [:find.prev]
"ctrl-/" [:toggle-comment-selection]
"ctrl-w" [:editor.watch.watch-selection]
"ctrl-shift-w" [:editor.watch.unwatch]

f3とかpageupとかも普通に使えるのに驚いた
:toggle-comment-selectionは必須だな。もっと早く知りたかった

Windowsだとalt-wがメニューに吸われるのがだるいなあ・・・

234 :デフォルトの名無しさん:2014/03/04(火) 23:15:28.80
>>228
(mapcat seq mm) とかではだめかな?

235 :デフォルトの名無しさん:2014/03/05(水) 01:16:01.38
>>234
なるほどね。それでいけるね。
apply concatでも大丈夫そう

236 :デフォルトの名無しさん:2014/03/06(木) 02:40:32.58
repl で 
(set! x 4)

とかとしてもエラーにならないxってどうやって定義するの?
(def x 0)
(def ^:dynamic 0)
とかでも
IllegalStateException Can't change/establish root binding of: x with set clojure.lang.Var.set

でエラーになる

237 :デフォルトの名無しさん:2014/03/06(木) 02:57:00.72
clojure.core.clj のソースをみても

(def ^:dynamic *print-level* nil)
とかで定義しているのに、なんで自分で定義したら上のエラーが出るんだ?

238 :デフォルトの名無しさん:2014/03/06(木) 03:20:29.28
>>236
thread localの(bindingした)varに対してset!できる
(def ^{:dynamic true} *TESTVAR* 1)
(binding [*TESTVAR* 2]
*TESTVAR*)
=> 2
(def ^{:dynamic true} *TESTVAR* 1)
(binding [*TESTVAR* 2]
(set! *TESTVAR* 3)
*TESTVAR*)
=> 3

そうでないなら(REPLからとか)
(alter-var-root #'YOUR-VAR-NAME (constantly NEW-VALUE))
みたいにしないと駄目

239 :デフォルトの名無しさん:2014/03/06(木) 04:26:07.41
>>238 なるほどね。Thanks!

でもなんで *print-level*は

(def ^:dynamic *print-level* nil)
で定義されているのに

replで
(set! *print-level* 5)
-> 5
とかできるんだろう

240 :デフォルトの名無しさん:2014/03/06(木) 08:46:49.52
(defn myint []
(let [x (read)]
(binding [mem mem]
(if (< x 0)
(println "good-by")
(do
(set! mem (+ mem x))
(println mem)
(myint))))))

のでつかえばいいんだな

241 :デフォルトの名無しさん:2014/03/06(木) 17:03:49.35
>>239
clojure.mainの中でwith-bindingマクロつかってREPLのループ中でbindingされているから
emacsでnrepl-jack-inとかcider-jack-inして使っているなら clojure.mainをM-.してソースみてみると良いよ
あるいは直接clojureのソースのmain.cljみてみるよろし。(repl関数ね)

263 KB
新着レスの表示

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)