2017-02-12 12 views
1

Я новичок в Haskell и узнал о списках. У меня есть следующий список [1, 2, 3] и еще один список [4, 5, 6]. Я пытаюсь найти способ, чтобы получить следующий вывод:List Comprehension in haskell

[[1, 2, 3, 4], [1, 2, 3, 5], [1, 2, 3, 6]] 

То есть, для каждого элемента во втором списке, я хочу, чтобы создать новый список, который является первым списком с этим элементом, приложенным.

ответ

4

Если a = [1, 2, 3] и b = [4, 5, 6], вы можете сделать что-то вроде этого:

map (\x -> a ++ [x]) b 

Для каждого элемента b, map будет применять функцию \x -> a ++ [x]. Эта функция объединяет два списка: a и [x].

Вы также можете написать его в качестве списка понимания:

[a ++ [x] | x <- b]