Size: a a a

2020 September 27

SP

Sergey Prokhorov in ErlangRus
ну и это в глаза бросается (сделал бы так):
case E of
 [] -> {error, ...};
 [{_Key, Value}] -> {ok, Value}
end
источник

in ErlangRus
Sergey Prokhorov
не понял зачем 2 функции в filter
сделал аналог list comprehension, только на рекурсии, так же принимает список, условие и то, как обработать элемент
источник

SP

Sergey Prokhorov in ErlangRus
хм...
источник

SP

Sergey Prokhorov in ErlangRus
а что там в filter в конце? На скриншоте не видно
источник

in ErlangRus
где?
источник

SP

Sergey Prokhorov in ErlangRus
Теперь без list comprehension :)
тут
источник

in ErlangRus
это?
источник

SP

Sergey Prokhorov in ErlangRus
ага. Result не нужна переменная
источник

in ErlangRus
как так?
источник

SP

Sergey Prokhorov in ErlangRus
ну ты в неё ничего не добавляешь.
источник

SP

Sergey Prokhorov in ErlangRus
можно просто написать filter([], _, _) -> [];
источник

in ErlangRus
хах, рил, там же теперь body-рекурсия :)
источник

in ErlangRus
теперь там одинаковая длина аргументов у двух функций :(
источник

SP

Sergey Prokhorov in ErlangRus
ну грохни первую да и всё
источник

in ErlangRus
Работает :) Спасибо
источник

SP

Sergey Prokhorov in ErlangRus
серъёзные пацаны ещё могут вместо того чтоб повторять в нескольких местах fun(X) -> X end могут сделать отдельную функцию
id(X) -> X.

и потом на неё ссылаться
filter(Db, fun(X) -> ... end, fun id/1)


или даже сделать функцию filter/2:

filter(List, FilterFun) ->
   filter(List, FilterFun, fun(X) -> X end).
источник

in ErlangRus
Гениально :)
источник

in ErlangRus
Теперь так :)
источник

in ErlangRus
Sergey Prokhorov
ну и это в глаза бросается (сделал бы так):
case E of
 [] -> {error, ...};
 [{_Key, Value}] -> {ok, Value}
end
Записал так, мне нужен только первый элемент списка :)
источник

SP

Sergey Prokhorov in ErlangRus
да, но у тебя он и будет максимум один. Ты же делаешь delete внутри write. Или своему коду не доверяешь? =)
источник