Elm 从列表中获取列表
我有一个复杂的数据结构,为了更好地理解,我必须创建这个简短的示例Elm 从列表中获取列表,elm,Elm,我有一个复杂的数据结构,为了更好地理解,我必须创建这个简短的示例 type alias People = { name : String , sex : String , phones : List Phone } type alias Phone = { number : String , isActive : Bool } 此结构已填充: people = [ { name = "_me" , sex = "M" , phones = [
type alias People =
{ name : String
, sex : String
, phones : List Phone
}
type alias Phone =
{ number : String
, isActive : Bool
}
此结构已填充:
people = [
{ name = "_me"
, sex = "M"
, phones = [
{ number = "(99) 99 9 9999-9999"
, isActive = True
}]
},
{ name = "_you"
, sex = "M"
, phones = [
{ number = "(11) 11 1 1111-1111"
, isActive = True
},
{ number = "(22) 22 2 2222-2222"
, isActive = False
}]
}]
我只想从“人员”列表中获取“电话”,如下例所示
phones = [
{ number = "(99) 99 9 9999-9999"
, isActive = True
},
{ number = "(11) 11 1 1111-1111"
, isActive = True
},
{ number = "(22) 22 2 2222-2222"
, isActive = False
}]
我已经试了3天了,但都没用。你可以通过映射得到一个人的电话号码列表,然后将这些电话号码列表连接在一起,将所有电话号码提取到一个列表中:
getphone:列出联系人->列出电话
getPhones=List.concat或List.map.phones>>List.concat
非常感谢@Chad,我很遗憾你用一行就解决了这个问题。没什么不好的!坚持下去,功能风格的简洁性会在你身上得到提升或List.concatMap.phones
:)不,@guilhermescarabel,那不行。我最初的答案是用咖喱,所以你可以这样重写:getPhones-people=List.concat(List.map.phones-people)