Нашей задачей было написать функцию normalize/1, которая делит каждый элемент списка на мой максимальный элемент.
Вот мой код до сих пор (вместо моей собственной написанной функции я использовал встроенную, чтобы найти максимум):
normalize(List) ->
Z = lists:max(List),
[ X / Z || X <- List].
Теперь мне нужно написать функцию normalize2, которая делает то же самое, что и normalize/1, но использует lists:map/2.
normalize2(List) -> lists:map(fun normalize/1, List).
Терминал показывает это:
тест3: нормализовать2 ([1,2,3,5]). ** ошибка исключения: нет соответствующих списков функций: max(1) (lists.erl, строка 313) в функции test3:normalize/1 (test3.erl, строка 85) при вызове из lists:map/2 (lists.erl , строка 1224)
ОБНОВИТЬ:
Здесь find_max/1:
find_max([T]) ->
T;
find_max([H,H1|T]) when H > H1->
find_max([H,T]);
find_max([_H,H1|T])->
find_max([H1|T]).
Если я использовал ^ find_max, терминал показывает мне:
тест3: нормализовать2 ([1,2,3,5]). ** ошибка исключения: нет функционального предложения, соответствующего test3:find_max(1) (test3.erl, строка 137) в функции test3:normalize/1 (test3.erl, строка 84) при вызове из lists:map/2 (lists.erl , строка 1224)
Строка 137: find_max([T]) -> T; Строка 84: Z = find_max(List),