2017-06-04 71 views
0

是否有可能在後續方式中以某種方式將匿名函數參數應用於嵌套記錄?purescript嵌套記錄的匿名函數參數?

type UName = {fname :: String, lname :: String} 
type XName = { xname :: UName, addr :: String} 

updateU = _ { xname : { fname : _ } } -- not ok 
-- or 
updateU = _ { xname.fname = _ } -- not ok 
-- or 
updateU = _ { xname : fname = _ } } -- not ok 

上述試驗表明上下文無效。目的是執行:

updateU = \x -> { xname : { fname : x } } 

回答

4

最短的版本使用nested record updates,看起來像這樣:

updateU :: XName -> String -> XName 
updateU = _ { xname { fname = _ } }