Применение функции с несколькими входами с помощью карты? (Haskell)

StackOverflow https://stackoverflow.com/questions/2843150

  •  27-09-2019
  •  | 
  •  

Вопрос

G'day ребята,

Попытка в настоящее время, чтобы закончить немного домашней работы, над которым я работаю, и имея проблему, в которой я пытаюсь настроить карту через функцию, которая принимает несколько входов.

так что в случае, если я использую PlaceList F (X: XS) = карта AccelerateList F XS X XS

ProcessList предоставляется плавающее значение (F) и список, который он сортирует в другой список

Ускоренный список принимает плавающее значение (F) список и объект списка, через который он возвращает другой объект списка

Я знаю, что мой ускорительный код списка правильный, но я не могу за жизнью меня получить синтаксис для этого кода:

processList :: Float -> [Object] -> [Object]
accelerate f [] = []
accelerate f [x] = [(accelerateForce f x x)]
accelerate f (x:xs) = map accelerateList f xs x xs

Есть идеи? Я сейчас царапал голову около 3 часов. Я знаю, что это что-то В самом деле просто.

Это было полезно?

Решение

Сначала вы, вероятно, захотите использовать несколько скобок здесь:

map accelerateList f xs x xs

Функция map Занимает ровно два аргумента (не пять), поэтому вы должны сделать что-то подобное, например:

map (accelerateList f xs x) xs

Но с другой стороны, это не подходит с вашими функциональными подписями. Проблема, вероятно, в том, что вы не структурировали ваше решение достаточно хорошего способа. Может быть отдельным вопросом, но объяснение того, что вы пытаетесь выполнить с ускорением-функцией (или которые когда-либо - это «верхний» один), безусловно, поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top