Я нахожусь на PureScript 0.8.2. В PureScript Галоген, функция component
имеет подпись:Purescript Halogen Component function: Передача разнесенных аргументов вместо записи?
component :: forall s f g. ComponentSpec s f g -> Component s f g
где
-- | A spec for a component.
type ComponentSpec s f g =
{ render :: s -> ComponentHTML f
, eval :: Natural f (ComponentDSL s f g)
}
Так component
ожидает запись. Но в Halogen Template Project, component
называется следующим образом:
ui = component render eval
Am Я смотрел на двух разных component
функций? или аргументы, разделенные пространством, преобразуются в запись? Так что я попытался следующее psci
:
> type Point = { x :: Int, y :: Int }
> let
addP :: Point -> Int
addP p = p.x + p.y
> addP {x: 4, y: 5 }
9
> addP 4 5
Error found:
in module $PSCI
at line 1, column 1 - line 1, column 8
Could not match type
{ x :: Int
, y :: Int
}
with type
Int
....
ах, получилось, спасибо! Я понял, что не понял нюанс «purescript-halogen»: «^ 0.5.14» 'в' bower.json'. Я думал, что он подберет последнюю версию до версии 1.0, но это не относится к версиям ниже 1.0. Ссылка: https://docs.npmjs.com/misc/semver#caret-ranges-123-025-004 – RAbraham