Я хотел бы написать функцию, которая сочетает в себе уникальное-имя в списке u
с глаголом в списке v
с другим уникальным именем-по и так, что я хотел бы получить 3 выхода, как это:кортежей в Haskell
[ ("fluffy", "loves", "monkey"), ("bunny", "feeds", "fluffy"),
("bunny", "feeds", "monkey") ]
Единственное, что я не знаю, как получить его так, что второе уникальное имя, которое оно дает мне, отличается от первого. Вот мой код:
let fun = [ u ++ " " ++ v ++ " " ++ u | u <- ["fluffy", "bunny", "monkey"], v <- ["eats", "feeds", "loves"]]
let funThree = take 3 (cycle fun)
В настоящее время мой выход таков:
["fluffy eats fluffy","fluffy feeds fluffy","fluffy loves fluffy"]
Нет, я хочу только три выхода, я хочу, чтобы он взял имя из u, объединил его с глаголом v и объединил его с РАЗЛИЧНЫМ именем из u. – Chalupa
В к сожалению удаленном ответе автор предположил, что вы на самом деле создали кортеж, как вы указываете в заголовке и примере. Для этого вы измените выражение для результата понимания списка, например. 'u1 ++" "++ v ++" "++ u2' to' (u1, v, u2) '. Первый из них имеет тип '[Char]', а второй имеет тип '([Char], [Char], [Char])'. – Cirdec
спасибо, этот комментарий на самом деле очень помог – Chalupa