Clojure
Clojure Advent Calendar 2021 12/11 (土) です☆ 12/10 (金) は id:kbaba1001 さんのClojureで仕事をはじめて1年経った - さめたコーヒーでした♪ www.kbaba1001.com Clojerl は Erlang VM で動く Clojure です。Erlang/OTP や Erlang library の函數を Cloj…
LSP (language server protocol) server での定義 jump は便利ですね。IDE は便利です。でも部分的にしか program を理解できなかったり、そもそも LSP は壊れたりします、おま環 (死語) ではありますが…。 結局 grep だとか ag が便利です。結局 print debu…
二年ぶりの開催でした。memo です。 scrapbox.io LT はこれ。Elixir でない BEAM 言語も OK だと主宰者の方から言っていただけたので、Clojerl を紹介しました。 scrapbox.io
先日書いた以下の記事で Python の script を貼り附けた。 c4se.hatenablog.com しかし今は Clojure (Babashka) で書く事に決めてあるので、書き直した。Windows 版の Babashka (bb.exe) ではなく Linux 版 (bb) を呼んでゐる。WSL2 で作業するのでこれで困…
Zoom 開催です。Clojure 囘でした。 Shibuya.lisp さんには二回目の參加ですが、相當昔に偶々職場で開催された時だったので実質初です。その時も Clojure 囘だった氣がする。 これは memo です。 scrapbox.io ClojureScript の eco system を一切知らんなと…
Babashka は 10 ms 程度で起動する Clojure の runtime だ。Clojure を GraalVM で native code に compile し、shell script 使ひに便利な Clojure の標準 library と Java の class とを殘して削り、便利な library を幾つか加えたものである。66 MB に迄…
Clojure で日本の祝日を引く library を作った。 github.com 既に同様の library が Java に在る (holiday-jp/holiday_jp-java) が、今囘のものは JVM で動く Clojure だけではなく、Erlang VM (BEAM) 上で動く Clojerl、.NET で動く Clojure CLR、JavaScrip…
Erlang の好い感じの Slack client が無かったので書いた、のだが Clojerl で書いたので Erlang からは使へない。 github.com README に書いた通り gen_event bahaviour を書けば Slack と會話出來る。 (ns example-bot.handler1) (erlang.core/behaviours g…
behaviour (英國英語) は Java の interface に似て、module に指定の函數が實裝してゐなければ警告又は error を出す機能だ。Clojerl にも、無くても困らないが有ると嬉しい。 document には当然 (なんで当然?) 無い。GitHub repository の examples にも無…
Clojerl は Erlang VM (BEAM) で動く Clojure である。 Erlang/Elixir では pattern match を頻繁に使ふ。一つは條件分岐する爲。慣れてゐる Elixir で書こう。 defmodule Example do def example1(:a, v), do: v + 1 def example1(_, v), do: v def example…
何でこの document が無いんだ。無かったから書いた。英語にしたいが氣力が無い。 Clojure Advent Calendar 2020 が空いてゐたので參加しやう。 やってみる: Getting started 先づ rebar3_clojerl で project を作ろう。First, create a project by rebar3_c…
非同期に行はれる二種類の處理を繋ぎたい。一つ目の處理から來る data は一つづつ二つ目の處理へ渡される。一つ目の處理は、二つ目の處理よりも速く data を作り出すとする。分散處理の出番である。CPU の core が複數有る場合や IO 待ちが支配的であるなら…
偶々 Clojure で Atom を、Python で SVG を生成する機會が有った。どちらも XML だ。Python には標準でxml.etree.ElementTreeと云ふ class が含まれてゐて、これで XML を讀み書き出來る。 Clojure だと XML を生成するには、 (require '[clojure.xml :as x…
度々簡易な task runner を書いてゐる。いつもは Makefile を使ってゐて、makeと打つだけで何をするべきか思ひ出せるやうにしてある。例へば、 .PHONY: help help: @awk -F':.*##' '/^[-_a-zA-Z0-9]+:.*##/{printf"%-16s\t%s\n",$$1,$$2}' $(MAKEFILE_LIST) …
qiita.com What is Google Apps Script? Google Apps Script (以下 Apps Script) は、Google の server 上での serverless な JavaScript 實行環境です。serverless な JavaScript 實行環境ですので Cloud Function の仲間です。函數を起動できる event の種…
Immutable data is a foundation of abstraction - it localizes program computation. So immutable data makes concurrency easy & decreases bugs. All data in Erlang/Elixir is immutable. We are happy to use functional programming techniques, wor…
Clojureをやる。Overtone (SuperCollider)とQuil (Processing)が目當てだったが、JVM は此いつで濟ませて了へさうだ。Android も Clojure で書ける。 書けてゐた。 或る日突然書けなく成った。Leiningenを更新したからだ。lein 2.8 に成った。 % lein -v Lei…
Clojureのloop-recurを、Rubyでやった。Elixirの古いversionにも有ったらしい。 末尾再帰の最適化 (TCO, tail call optimization) が出来ないsystemだと、助かるみたい。Ruby 2.0.0とかClojureみたいな。 def factorial n cloop n, 1 do |n, acc| if n == 0 …