我有一个关于记录的问题:假设我有一个接收记录的函数,如下所示:
getId : { file | id : String } -> String
getId file = file.id
Run Code Online (Sandbox Code Playgroud)
我可以传递这样的信息:{ id = "abcd", name = "hi.txt"}因为它有一个id. 到目前为止一切都很好。我的问题是:我可以为函数类型签名中的“文件”创建一个别名吗?那的语法是什么?
我有一个包含向量的集合,例如#{[1 2 3]},并且我想获取该集合的第一个成员的第一个元素。有没有比 更惯用的方法来做到这一点(first (first set))?
我卡与解码应的阵列的译码器[ 9.34958, 48.87733, 1000 ]的Point,其中,索引2(仰角)是可选的。
type alias Point =
{ elev : Maybe Float
, at : Float
, lng : Float
}
Run Code Online (Sandbox Code Playgroud)
因此我创建了以下解码器:
fromArrayDecoder : Decoder Point
fromArrayDecoder =
map3 Point
(index 2 Decode.float |> Decode.maybe)
(index 1 Decode.float)
(index 0 Decode.float)
Run Code Online (Sandbox Code Playgroud)
我现在的问题是,当索引 2 丢失或属于任何类型(如字符串等)时,此解码器会成功。但我希望它仅在 elev 丢失时成功,而不是在类型错误时成功。有没有办法做到这一点?
我正在编写一个将关键字转换为符号的宏 此符号将用于 a(def ~symbol ...)有一种“默认”方法可以标准化:foo.bar/quoo为有效符号吗?(symbol (namespace kw) (name kw))?