Я просматриваю частично примененную функцию. Полная подпись:
import Data.Map as Map
-- Update the correct bin of the histogram based on the min value, bin width,
-- the histogram stored as a map, and the actual value we are interested in.
updateHist :: Double -> Double -> Map.Map Bin Double -> Double ->
Map.Map Bin Double
Функция обновляет карту, которая хранит данные для гистограммы. Первые два параметра дают нижние границы интересующих нас данных, следующая - ширина бункера для гистограммы. Я заполняю эти значения, когда программа запускается и передает частично примененную функцию по всему модулю. Это означает, что у меня есть тонна функций с сигнатурой вроде:
-- Extra the data out of the string and update the histogram (in the Map) with it.
doSomething :: String -> (Map.Map Bin Double -> Double -> Map.Map Bin Double) ->
Map.Map Bin Double
Это все прекрасно и денди, но пишут "(Map.Map Bin Double → Double → Map.Map Bin Double)" довольно многословно. Я бы хотел заменить их "UpdateHistFunc" как тип, но по какой-то причине я продолжаю терпеть неудачу.
Я пробовал:
newtype UpdateHistFunc = Map.Map Bin Double -> Double -> Map.Map Bin Double
Ошибка с ошибкой:
HistogramForColumn.hs: 84: 44: ошибка синтаксического анализа на входе `- > '
Что я делаю неправильно?