У меня есть функция, которая преобразует [a, b, c, d, . . . ] до [(a,b), (c, d), . . .]. Теперь это работает, и вот код для этого:
makeTuple :: [a] -> [(a,a)]
makeTuple [] = []
makeTuple [a] = []
makeTuple (x:y:xs) = (x,y): (makeTuple xs)
Теперь следующее, что мне нужно сделать, это: используя предыдущую функцию, преобразовать каждый кортеж в произведение двух его элементов, используя foldl и лямбда-выражение. И вот что у меня есть:
productTuple [x] = foldl makeTuple [] [x]
Теперь я не уверен, что это именно то, о чем меня просят. Я не уверен, должен ли я сделать отдельную функцию с объявлением типа и еще много чего. Может быть, кто-то может сказать мне, если это лучший способ приблизиться к этому. Также этот код не работает, и я не знаю почему, мне нужна помощь с этой частью. (обратите внимание, что в нем говорится использовать лямбда, но я понятия не имею, как правильно их использовать, что является еще одной частью, с которой мне нужна помощь) Я был бы очень признателен, спасибо.
makeTuple
? - person Willem Van Onsem   schedule 02.11.2017productTuple (x:xs)
иproductTuple []
. - person altschuler   schedule 02.11.2017foldl
, который принимает в качестве входных данных список, чтобы воссоздать этот список (по сути, это функцияid
)? - person Willem Van Onsem   schedule 02.11.2017