Functional programming Elm:从字符串列表中提取记录值
我尝试创建一个函数,该函数接受一条记录和一个属性名列表,并以字符串列表的形式返回值:Functional programming Elm:从字符串列表中提取记录值,functional-programming,elm,Functional Programming,Elm,我尝试创建一个函数,该函数接受一条记录和一个属性名列表,并以字符串列表的形式返回值: Model -> (List String) -> (List String) 以后的目标是能够将记录动态呈现到HTML表中: Model -> (List String) -> (Html Cmd) 我成功地实现了这一点: import Html exposing (text) type Field = FieldInt Int | FieldString String
Model -> (List String) -> (List String)
以后的目标是能够将记录动态呈现到HTML表中:
Model -> (List String) -> (Html Cmd)
我成功地实现了这一点:
import Html exposing (text)
type Field
= FieldInt Int
| FieldString String
type alias Model =
{ name: Field
, age: Field
}
user1 = Model (FieldString "foo") (FieldInt 3)
field2text: Field -> String
field2text field =
case field of
FieldInt value ->
toString value
FieldString value ->
value
updateModel: (List (a -> Field)) -> (List String)
model2values fns model =
List.map (\fn -> field2text <| fn model) fns
main =
text <| toString (model2values [.name, .age] user1)
没有好办法,所以你只能:
toFieldGetter : String -> (a -> Field)
toFieldGetter : name =
case name of
"name" -> .name
...
model2values_ = model2values << List.map toFieldGetter
main =
text <| toString (model2values_ ["name", "age"] user1)
toFieldGetter:String->(a->Field)
toFieldGetter:名称=
案件名称
“名称”->。名称
...
model2values_u2;=model2values
toFieldGetter : String -> (a -> Field)
toFieldGetter : name =
case name of
"name" -> .name
...
model2values_ = model2values << List.map toFieldGetter
main =
text <| toString (model2values_ ["name", "age"] user1)