c4se記:さっちゃんですよ☆

.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

.。oO(此のblogは、主に音樂考察Programming に分類されますよ。ヾ(〃l _ l)ノ゙♬♪♡)

音樂は SoundCloud 等に公開中です。

考察は現在は主に Scrapbox で公表中です。

Programming は GitHub で開発中です。

Erlang

Clojure で日本の祝日を引く library を作った

Clojure で日本の祝日を引く library を作った。 github.com 既に同様の library が Java に在る (holiday-jp/holiday_jp-java) が、今囘のものは JVM で動く Clojure だけではなく、Erlang VM (BEAM) 上で動く Clojerl、.NET で動く Clojure CLR、JavaScrip…

Clojerl の Slack client を書いた

Erlang の好い感じの Slack client が無かったので書いた、のだが Clojerl で書いたので Erlang からは使へない。 github.com README に書いた通り gen_event bahaviour を書けば Slack と會話出來る。 (ns example-bot.handler1) (erlang.core/behaviours g…

Clojerl で Erlang/OTP behaviour

behaviour (英國英語) は Java の interface に似て、module に指定の函數が實裝してゐなければ警告又は error を出す機能だ。Clojerl にも、無くても困らないが有ると嬉しい。 document には当然 (なんで当然?) 無い。GitHub repository の examples にも無…

Clojerl で Erlang の pattern match を行ふ。guard を使ふ

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…

Clojerl から Erlang を呼ぶ: How to interoperate with Erlang and Clojerl

何でこの document が無いんだ。無かったから書いた。英語にしたいが氣力が無い。 Clojure Advent Calendar 2020 が空いてゐたので參加しやう。 やってみる: Getting started 先づ rebar3_clojerl で project を作ろう。First, create a project by rebar3_c…

Erlang/OTPのリリース番号をerlコマンドで確かめる

ネタは腐るほど溜まってるが腐ってるので氣力( erl -noshell -eval 'io:format("~s~n", [erlang:system_info(otp_release)]), init:stop().' erlang:system_info/1 を使ふ。 Serverspecだと describe command(%{erl -noshell -eval 'io:format("~s~n", [erla…

ElixirにてListのランダムな要素を取得する

追記:20170702 Enum.random/1を使ふのが好い。 Enum – Elixir v1.4.5Rubyだと xs.sample である。JavaScriptだと xs[Math.floor(Math.random() * xs.length)]; となる。Elixirでもこれに近いことを行ふ。Erlangのrandomモジュールを使ってみると Enum.at(xs,…

UbuntuにErlang/OTP R16をinstallする

Elixirの為に。 直ぐに陳腐に成る記述をする。 Ubuntu 13.04のaptに登録されてゐるerlang packageは現在R14或いはR15と古く、最新のElixirが動かない。erlangをsourceからbuildするのは依存関係の解決が面倒なので、其れを簡単にする。 先ずversionの古いerl…

初kell

Haskell。FizzBuzz書く丈で死にそうに成った。 module Main where import System.Environment fb :: Int -> String fb num | num `mod` 15 == 0 = "FizzBuzz" | num `mod` 3 == 0 = "Fizz" | num `mod` 5 == 0 = "Buzz" | otherwise = show num fizzbuzz :: …

FizzBuzz #erlang

あたしゃFizzBuzzも書けねえのかよ……。 -module(zampan). -compile(export_all). fizzbuzz(N) -> fizzbuzz(N, []). fizzbuzz(0, Acum) -> lists:concat(lists:map(fun(Elm) -> io:format("~p ", [Elm]) end, Acum)); fizzbuzz(N, Acum) -> if (N rem 3 == 0)…

反復諸法 - 繰り返し、イテレータ、再帰、(続く)

[.。oO(さっちゃんAdvent Calendar) : ATND http://atnd.org/events/22829 ]2日目 繰り返し programmingには繰り返しと云う実行構造が有ります。forとかwhileとかforeachとか。 # Python for i in range(12): print(i * 2) # Python i = 0 while i < 19: prin…