Как вызвать функцию для всех элементов списка в Haskell?

Всем привет.

Допустим, у меня есть такой список:
[1, 2, 3, 4, 5]

И есть функция:
pow2 x = x ^ 2

Как вызвать функцию для всех элементов списка в Haskell?

Пример на языке Java:
for (Integer i : list) {
    pow2(i);
}
  • Вопрос задан
  • 149 просмотров
Решения вопроса 2
myjcom
@myjcom
Или так
λ> myfun = (^2)
λ> myfun <$> [1, 2, 3]
[1,4,9]

λ> myfun = (^2)
λ> map myfun [1, 2, 3]
[1,4,9]


Что больше подходит под определение

Есть функция:
pow2 x = x ^ 2


Есть такой список:
[1, 2, 3, 4, 5]

Как вызвать функцию для всех элементов списка


Хотя еще
squares :: Num a => [a] -> [a]
squares lst = do
    x <- lst
    return (x ^ 2)

squares' :: Num a => [a] -> [a]
squares' lst = lst >>= \x -> return (x ^ 2)

squares'' :: Num a => [a] -> [a]
squares'' lst = [x ^ 2 | x <- lst]

fx f lst = [f x | x <- lst]

main = do 
  print $ fx (^2)   [1, 2, 3]
  print $ squares   [1, 2, 3]
  print $ squares'  [1, 2, 3]
  print $ squares'' [1, 2, 3]
Ответ написан
Комментировать
@AlexSku
не буду отвечать из-за модератора
Всё верно:
Prelude> myFun = map (^2)
Prelude> myFun [1, 2, 3, 4]
[1,4,9,16]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы