Я пытаюсь реализовать морфизм foreach, чтобы проверить свое понимание определения морфизма и сопоставления с образцом ... Очевидно, я полностью упускаю оба момента.
Не могли бы вы меня поправить? Я хочу, чтобы морфизм foreach
принимал в качестве аргументов список a
и морфизм f
и возвращал список всех результатов r
of f
применяется ко всем элементам a
.
foreach :: [a] → f → [r]
foreach [] f = []
foreach x:[] f = (f x):[]
foreach []:x f = []:(f x)
foreach (x:xs) f = (f x) : (foreach (xs f))
При компиляции У меня есть src \ Main.hs: 23: 0: Ошибка синтаксического анализа в шаблоне