如何在Haskell中为数据结构创建默认值

Tan*_*rya 0 haskell

我有这样的数据结构

data Sample = Sample { a :: String , b :: String } 
Run Code Online (Sandbox Code Playgroud)

和一个功能

mkSample :: String -> String -> Sample
mkSample a b = Sample a b 
Run Code Online (Sandbox Code Playgroud)

我想为a,b提供一些默认值,以防调用函数不提供它们,例如

mkSample :: String -> Sample
mkSample a = Sample a "test"
Run Code Online (Sandbox Code Playgroud)

1)我觉得这个解决方案不是优雅的,我还有什么其他选择。2)我如何为b创建一个mkSample,因为类型与a的类型相同。

Tho*_*son 6

data Sample = Sample { a :: String , b :: String } 
defaultSample :: Sample
defaultSample = Sample "test" "value_b"
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用记录语法:

let mySample = defaultSample { b = "custom value" }
...
Run Code Online (Sandbox Code Playgroud)