は、私は基本的にエントリのリストをラップ非常に単純なGenServerを実装していますエリクサーと機能入力の検証
エリキシル(が、ほとんどの関数型プログラミング)を学ぶためにしようとしています。各paramのエントリの最大数と最大サイズ(バイト単位)は、(設定ファイル)
defmodule List do
def init(_) do
{:ok, []}
end
def handle_call({:insert, param1, param2, param3}, from, list) do
import Application
param1_max_size = get_env(:app, ....)
param2_max_size = get_env(:app, ....)
param2_max_size = get_env(:app, ....)
max_items_count = get_env(:app, ....)
## should be {:reply, {:error, :your_list_is_full}, list} if list is full
## should be {:reply, {:error, {:check_this_args_please, wrong_params_list}, list} if any param is wrong. wrong_params_list contains the offending params
## should be {:reply, {:ok}, [{param1, param2, param3} | list ]} otherwise
end
end
制限されている私はそれが簡単に思える知っているが、基本的に私はそれを行うには、エレガントな機能的な方法を見つけようとしています。私の頭は手続き的なもので、私はいつもCのように=演算子を使って "入れ子になったら他の地獄"になってしまいます。複数のパラメータを検証するため、私が知っている
THX
これは本当に良いです。 – justatester