Skip to content

Instantly share code, notes, and snippets.

View lagenorhynque's full-sized avatar
🐬
architecting & managing

Kent OHASHI lagenorhynque

🐬
architecting & managing
View GitHub Profile
dev> (defrecord Tree [left right])
dev.Tree
dev> (defn ->list [tree]
(letfn [(rec [acc {:keys [left right] :as t}]
(if (instance? Tree t)
(if (instance? Tree left)
(recur acc (->Tree (:left left) (->Tree (:right left) right)))
(recur (cons left acc) right))
(cons t acc)))]
(reverse (rec [] tree))))
@lagenorhynque
lagenorhynque / deps.edn
Created July 12, 2018 13:04
EDN to YAML conversion
{:deps
{io.forward/yaml {:mvn/version "1.0.9"}}}
@lagenorhynque
lagenorhynque / sicp-study-progress.md
Last active February 12, 2020 12:17
SICP勉強会の進捗状況
  • 序文
  • 1  手続きによる抽象の構築
    • 1.1 プログラムの要素
      • 1.1.1 式
      • 1.1.2 名前と環境
      • 1.1.3 組合せの評価
      • 1.1.4 合成手続き
      • 1.1.5 手続き作用の置換えモデル
      • 1.1.6 条件式と述語
  • 問題 1.1
cljs.user=> (defn leibniz [n-terms]
#_=> (->> (iterate inc 1)
#_=> (filter odd?)
#_=> (map / (cycle [1 -1]))
#_=> (take n-terms)
#_=> (apply +)
#_=> (* 4.0)))
#'cljs.user/leibniz
cljs.user=> (time (leibniz 10000))
"Elapsed time: 51.138105 msecs"
@lagenorhynque
lagenorhynque / clojurescript-the-good-parts.md
Last active November 11, 2022 07:12
ClojureScript: The Good Parts

ClojureScript

The Good Parts


カマイルカ🐬/laʒenɔʁɛ̃k/

(defprofile lagénorhynque
;;; unless
user> (defmacro unless [cond then]
`(if (not ~cond)
~then))
#'user/unless
user> (macroexpand-1 '(unless foo? bar))
(if (clojure.core/not foo?) bar)
;;; case
user> (defmacro case-table [k m]
`(case ~k
(defn fib [n]
(case n
0 0
1 1
(+ (fib (- n 1))
(fib (- n 2)))))
(let [x (-> *command-line-args*
first
js/parseInt)]
(defn english->french [words]
(clojure.walk/postwalk-replace '{are vas
book livre
friend ami
hello bonjour
how comment
my mon
red rouge
you tu
today aujourd'hui}
@lagenorhynque
lagenorhynque / clojurescript-re-frame.md
Last active November 11, 2022 07:14
ClojureScript/re-frame開発における思考フロー

Clojurianのlagénorhynque (a.k.a. カマイルカ)です。

先日、Shibuya.lisp lispmeetup #62で「re-frame à la spec」と題してre-frameというClojureScriptフレームワークの概要とclojure.specとの統合方法の一例について発表しました。

本記事では、その発表内容に関連してClojureScriptとre-frameでのSPA開発の流れについてご紹介します。

@ababup1192 さんのElmについての素晴らしい記事 Elm開発における思考フロー からサンプルコードと本文の構成を参考にさせていただきました。

こちらの記事と比較してみると、両言語/アーキテクチャの共通点や差異が見られて面白いかもしれません。

@lagenorhynque
lagenorhynque / deps.edn
Last active August 24, 2024 01:41
fibonacci with matrix exponentiation
{:paths ["."]
:deps {org.clojure/algo.generic {:mvn/version "0.1.2"}}}