Skip to content

Instantly share code, notes, and snippets.

🐬
(*> ᴗ •*)ゞ

Kent OHASHI lagenorhynque

🐬
(*> ᴗ •*)ゞ
Block or report user

Report or block lagenorhynque

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View duct-module-getting-started.md

Ductモジュール入門

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

lagénorhynque

(defprofile lagénorhynque
View clojure-repl-the-good-parts.md

Clojure REPL: The Good Parts


lagénorhynque

(defprofile lagénorhynque
  :id           @lagenorhynque
  :reading      "/laʒenɔʁɛ̃k/"
@lagenorhynque
lagenorhynque / reverse.lisp
Last active Nov 8, 2019
"destructive"(?) reverse in Common Lisp, Scheme and Ruby
View reverse.lisp
* (defparameter xs '(1 2 3))
XS
* xs
(1 2 3)
* (nreverse xs)
(3 2 1)
* xs
(1)
@lagenorhynque
lagenorhynque / apply.clj
Last active Aug 16, 2019
Clojure's apply vs Python's unpacking operator
View apply.clj
$ 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
View simple-made-easy-made-easy.md

"Simple Made Easy" Made Easy

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


lagénorhynque

(defprofile lagénorhynque
  :id           @lagenorhynque
View clojure-rest-api-examples-for-minimalists.md

新たなプログラミング言語に入門したら、早く実用的なアプリケーションを作ってみたくなるものです(ちなみに私 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
Simple counter programs in Elixir & Clojure
View counter.clj
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
View elixir-from-a-clojurians-perspective.md

ClojurianからみたElixir


lagénorhynque

(defprofile lagénorhynque
  :id           @lagenorhynque
  :reading      "/laʒenɔʁɛ̃k/"
@lagenorhynque
lagenorhynque / lousy_calculator.clj
Created Apr 30, 2019
Typespecs in Elixir & clojure.spec in Clojure
View lousy_calculator.clj
(ns lousy-calculator
(:require [clojure.spec.alpha :as s]))
(s/def ::number-with-remark (s/tuple number? string?))
(s/fdef add
:args (s/cat :x number?
:y number?)
:ret ::number-with-remark)
You can’t perform that action at this time.