2017-04-16 3 views
2

는 순환 종속성이 기록을 선언 할 수 있습니다하지만 실제로 purescript의 인스턴스를 생성하는 방법을 알아 내지 못했다. F #에서는 다음과 같이 인스턴스를 생성 할 수 있습니다.순환 종속성이있는 레코드를 만드시겠습니까?</p> <pre><code>newtype User = User { name :: String , organization :: Organization } newtype Organization = Organization { name :: String , users :: List User } </code></pre> <p>을 다음과 같이 purescript에서

나는 항상 pam 값을 얻지 못한다. 어쩌면 수정 기능을 사용하고 있을까요?

답변

0

나는 게으른 구조의 일부를하지 않고는 PureScript에서이 작업을 수행 할 수 있다고 생각하지 않습니다

import Data.Lazy (Lazy, defer) 

newtype User = User 
    { name :: String 
    , organization :: Lazy Organization 
    } 

newtype Organization = Organization 
    { name :: String 
    , users :: Array User 
    } 

fed :: Organization 
fed = 
    Organization 
    { name: "Federal Reserve" 
    , users: 
     [ User { name: "Pamela", organization: defer \_ -> fed } 
     , User { name: "Jillian", organization: defer \_ -> fed } 
     ] 
    } 
+0

감사합니다! 이것은 내가 필요한 일을한다. –

+0

아, 그게 당신의 유스 케이스에 받아 들여질 지 확신 할 수 없었습니다! –