Я читаю Programming Erlang, когда я набираю это в erlang REPL:
perms([]) -> [[]];
perms(L) -> [[H|T] || H <- L, T <- perms(L--[H])].
* 1: syntax error before: '->'
Я знаю, что не могу определять функции таким образом в оболочке, поэтому я меняю его на:
2> Perms = fun([]) -> [[]];(L) -> [[H|T] || H <- L, T <- Perms(L--[H])] end.
* 1: variable 'Perms' is unbound
Означает ли это, что я не могу определить рекурсивную функцию в оболочке?
F = fun F([X|Xs]) -> [do_something(X) | F(Xs) ] end.
Затем назовите его какF(YourXList).
См. этот вопрос. - person Steve Vinoski   schedule 26.08.2015