Erlang メモ
いくつか
** mapっぽいこと
Python Code
> [N*2 for N in range(10) if N % 2 == 0] [0, 4, 8, 12, 16]
Erlang Code
1. [2*N || N <- [0,1,2,3,4,5,6,7,8,9], N rem 2 =:= 0]. [0,4,8,12,16]
ただやっぱ Erlang のほうが柔軟っぽい
1. [X+Y || X <- [1,2], Y <- [2,3]]. [3,4,4,5]
この場合のリスト包括が 1+2, 1+3, 2+2, 2+3 に展開されるみたい。
** モジュールの作成
スッカリ作り方忘れてて適度にはまってた。
join 関数のようなもの作ってみる。
ファイル名: recursive.erl
-module(recursive). -export([join/2]). join(N, [{K,V}]) -> K ++ "=" ++ V; join(N, [{K,V}|Array]) -> K ++ "=" ++ V ++ N ++ join(N, Array).
一つ目のjoin
関数の末尾は「;」になる。同じ名前の関数があるから?
実行例
1> recursive:join("&", [{"A", "1"},{"B", "2"},{"C", "3"}]). "A=1&B=2&C=3"