#こんなコードを書いてなぜ無限ループするのか小一時間悩んでしまった…
#(loop (cond
((condition-met-p)
(do-something)
t) ;exit loop with tのつもり
(t
(do-something-else)
))) ;continue loop
#頭の中ではこうなっていた:
#(let loop ()
(cond ((condition-met-p)
(do-something)
#t)
(else
(do-something-else)
(loop))))
##"Our vision? The dream of every hacker on this planet! -- 'We want to eliminate all human project management work on this planet.'" http://www.slideshare.net/smartrevolution/how-a-clojure-pet-project-turned-into-a-fullblown-cloudcomputing-webapp #"And it is much easier to sneak some Clojure code into the enterprise Java project your 40 person team currently working on..." (同上)
#emit と eliminate と illuminate がいつもごっちゃになってしまいます。
#emitっていうのはgccのソースを読んでて覚えた気がする。インストラクションを出力するところにemitなんたら、と名前がついてたような。後でトランジスタのエミッタemitterもemitであることに気づいた。(トランジスタの端子名はカタカナで最初覚えたので、コレクタ/エミッタとcollect/emitがなかなか結びつかなかった)
#illuminateはイルミネーションからかなあ。eliminateをどこで覚えたかは覚えてない。
#他にgccのソースで覚えた単語はgrok。
#emit は Gauche で学びました。 compile.scm かな。
#compiled-code-emit0! とか。
#共通部分式の除去 elimination of common subexpressions とか
#なんだかんだでソースコードから覚えた英単語って多そうだなあ。
#>nobsun 共通部分式の除去はCSE、と略語の方を先に思い浮かべるな。common subexpression eliminationか。
#elminate も compile.scm で学んだ気がしてきた。
#>;; Walk down IForm and perform optimizations.
>;; The main focus is to lift or inline closures, and eliminate
>;; local frames by beta reduction.
#自分も emit は gcc ですね。あと insn という略し方。
#ぼくは emit は LED の E で覚えちゃったのでなんか光る感じなんですよね。
#あと、emit と omit もごっちゃになったり。で、omit は eliminate と意味がちょっと似てるから、ますますごちゃごちゃになります(笑)。
#そうだ、LEDのEもemittingですね。なるほど、emitとomitが似ているのには気づかなかった。
#日本語でも、意識しないでちゃんと使い分けてた言葉が、非日本語話者に教えようとした時に、はたと「これとこれ、良く似ててまぎらわしいなあ」と気づくことがありますね。
#非同期にいろんなプロセスが走って
#eventuallyにconsisntentな状態になるようなシステムの自動化テストを書くのは面倒だなあ。
#なんかうまい方法論はあるだろうか。やっぱり強制的に状態遷移をキックするような仕組みがないとだめかなあ。
#ClozureというCommon Lispがあって、Clojureより歴史が古いということを昨日知った