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)