Mais conteúdo relacionado
Semelhante a おいしいLisp (20)
おいしいLisp
- 3. 自己紹介
(defprofile lagenorhynque [Kent OHASHI]
:github/twitter @lagenorhynque
:company 株式会社オプト
:languages [Clojure Haskell Python Scala
English français Deutsch русский]
:interests [プログラミング 語学 数学])
- 13. リファクタリング: Lisp (Clojure)
なんとかしたい……
(Math/sqrt (/ (sum (for [x xs] (Math/pow (- x μ) 2))) n))
マクロを定義しよう!
(defmacro -> [x & forms]
(loop [x x, forms forms]
(if forms
(let [form (first forms)
threaded (if (seq? form)
(with-meta `(~(first form) ~x ~@(next form)) (meta form))
(list form x))]
(recur threaded (next forms)))
x)))
- 14. マクロの利用: Lisp (Clojure)
(h (g (f x))) ⇒(-> x f g h)
(defn standard-deviation [xs]
(let [n (count xs)
μ (/ (sum xs) n)]
(-> (for [x xs] (Math/pow (- x μ) 2))
sum
(/ n)
Math/sqrt)))
- 18. DSLの例: JavaScript
let colors = ["red", "yellow", "green"];
colors.forEach(color => console.log(color));
: Clojure to JS compilerClojureScript
(def colors ["red" "yellow" "green"])
(doseq [color colors]
(println color))
- 20. Further Reading
: Clojure公式
: ClojureScript公式
: ブラウザで試せるClojure REPLのひとつ
: ブラウザで試せるClojureScript REPLのひとつ
: Clojureの入門書(日本語では現在唯一)
: Clojureのレシピ本
: Lisp(主にCommon Lisp)でのマクロの活用について
: DSL設計/実装のノウハウとRuby, Scala,
Groovy, Clojureのメタプログラミングについて
Clojure
ClojureScript
Clojure instaREPL
Replumb REPL
『プログラミングClojure』
『おいしいClojure入門』
『On Lisp』
『実践プログラミングDSL』