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
@lagenorhynque
lagenorhynque / repl.clj
Last active March 14, 2020 12:18
libpython-clj usage examples (Clojure ❤️ Python?)
dev> (require '[libpython-clj.python :as py])
nil
dev> (py/initialize! :python-executable venv-python
:library-path dylib-path)
...
dev> (require '[libpython-clj.require :refer [require-python]])
nil
dev> (require-python '[numpy :as np]
'[numpy.random :as np.rand]
'[pandas :as pd])
@lagenorhynque
lagenorhynque / if_let_macro.clj
Created January 9, 2020 04:47
Walrus operator in Python 3.8 vs if-let macro in Clojure
dev> (if-let [coll (seq [1 2 3])]
(println coll)
(println "EMPTY"))
(1 2 3)
nil
dev> (if-let [coll (seq [])]
(println coll)
(println "EMPTY"))
EMPTY
nil
@lagenorhynque
lagenorhynque / duct-module-getting-started.md
Last active November 11, 2022 07:01
Ductモジュール入門: Clojureフレームワーク"Duct"の拡張方法を理解しよう

Ductモジュール入門

Clojureフレームワーク"Duct"の拡張方法を理解しよう

(defprofile lagénorhynque
@lagenorhynque
lagenorhynque / clojure-repl-the-good-parts.md
Last active November 11, 2022 07:01
Clojure REPL: The Good Parts

Clojure REPL: The Good Parts


(defprofile lagénorhynque
  :id           @lagenorhynque
 :reading "/laʒenɔʁɛ̃k/"
@lagenorhynque
lagenorhynque / reverse.lisp
Last active November 8, 2019 03:52
"destructive"(?) reverse in Common Lisp, Scheme and Ruby
* (defparameter xs '(1 2 3))
XS
* xs
(1 2 3)
* (nreverse xs)
(3 2 1)
* xs
(1)
@lagenorhynque
lagenorhynque / apply.clj
Last active August 16, 2019 07:55
Clojure's apply vs Python's unpacking operator
$ clj
Clojure 1.10.1
user=> (defn plus [& args]
(apply + args))
#'user/plus
user=> (plus 1 2 3)
6
user=> (apply plus [1 2 3])
6
@lagenorhynque
lagenorhynque / simple-made-easy-made-easy.md
Last active February 16, 2025 06:16
"Simple Made Easy" Made Easy: Clojureの設計思想を理解しよう

"Simple Made Easy" Made Easy

Clojureの設計思想を理解しよう


(defprofile lagénorhynque
 :id @lagenorhynque
@lagenorhynque
lagenorhynque / clj-slackbot_input.png
Last active July 12, 2023 16:37
Clojurian Conquest
clj-slackbot_input.png
@lagenorhynque
lagenorhynque / clojure-rest-api-examples-for-minimalists.md
Last active November 11, 2022 07:03
ミニマリストのためのClojure REST API開発入門

新たなプログラミング言語に入門したら、早く実用的なアプリケーションを作ってみたくなるものです(ちなみに私 lagénorhynque🐬 は最近、Elixirに入門しました)。

コミュニティの発展とともにClojureの応用領域もますます拡大していますが、定番は何よりWeb開発ということで本記事では素早く最小構成的にREST APIを開発する方法を紹介します。

DuctLuminusなどWebアプリ開発をスムーズにするための(マイクロ)フレームワークが有名なものだけでもいくつか存在しますが、今回はHTTPサーバ抽象と基本的なユーティリティを提供するRingとルーティング機能を提供するbidiによるミニマルな実装を考えます。

サンプルコードはPythonライブラリFlask-RESTfulのドキュメントQuickstartの例を参考にし、敢えて名前空間を分割せず1ファイルにまとめる構成にしています。

@lagenorhynque
lagenorhynque / counter.clj
Last active May 25, 2019 16:18
Simple counter programs in Elixir & Clojure
user> (defn counter [init]
(let [c (atom init)]
#(swap! c + %)))
#'user/counter
user> (def c1 (counter 0))
#'user/c1
user> (def c2 (counter 0))
#'user/c2
user> (c1 2)
2