2016-03-24 10 views
0

Ben PureScript 0.8.2'deyim.Purescript Halojen Bileşen işlevi: Kayıtlar yerine aralıklı argümanlar geçiyor mu?

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) 
    } 

Yani component rekor bekler: PureScript Halojen olarak, component işlev imzası vardır.

ui = component render eval 

Am İki farklı component fonksiyonları bakarak şu şekildedir: Ama Halogen Template Project yılında, component denir? veya boşlukla ayrılan argümanlar bir reklama dönüştürülür mü?

> 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 
.... 

cevap

0

Maalesef şablon projesi henüz güncellenmedi: Ben psci aşağıdaki çalıştı. Hatırlatma için teşekkürler!

varsayarsak sizin eval ve render fonksiyonları Bileşen tanımına bu şekilde yazmaya alan sözcük oyunları kullanabilirsiniz kapsamı içindedir:

ui = component { render, eval } 

Ama evet, rekor daima şimdi gereklidir. Şablon projesini hemen güncelleyeceğim.

+0

ah, anladım, teşekkürler! "Purescript-halojen" in nüansını anlamadığımı fark ettim: "bower.json" içinde "^ 0.5.14". En son sürümü 1.0'dan önce alacağını düşündüm ama 1.0'ın altındaki sürümlerde durum böyle değil. Ref: https://docs.npmjs.com/misc/semver#caret-ranges-123-025-004 – RAbraham