2017-12-07 12 views
2

私は複雑なデータ構造を持っており、この短い例を作成して理解を深める必要がありました。リスト内のリストを取得

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日間は試みていたが役に立たなかった。

答えて

3

あなたは人の電話番号のリストを取得するためにオーバーマッピングすることにより、リストにすべての電話番号を引き出すことができ、その後、それらの電話番号を連結して一緒に一覧表示されます:

getPhones : List People -> List Phone 
getPhones = List.concat << List.map .phones 
+0

や 'List.map。 phones >> List.concat' – ZhekaKozlov

+0

多くのおかげで@チャド、私はあなたが1行で問題を解決したことが悪いと感じる。 –

+0

悪いことはありません!それを維持し、機能的スタイルの簡潔さはあなたの上に成長します –

関連する問題