2017-12-07 3 views
2

나는 복잡한 데이터 구조를 가지고 있으며 더 나은 이해를 위해이 짧은 예제를 만들어야했습니다.리스트 내리스트 얻기

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 
    }] 

나 '아래의 예와 같이'사람 '목록에서 단지'전화 '를 좀하고 싶습니다 :

type alias People = 
    { name : String 
    , sex : String 
    , phones : List Phone 
    } 

type alias Phone = 
    { number : String 
    , isActive : Bool 
    } 

이 구조는 채워 3 일 동안 노력했지만 아무 소용이 없습니다.

답변

3

당신은 다음 해당 전화 번호을 연결, 사람의 전화 번호 목록을 가져올 이상 매핑하여 목록에있는 모든 전화 번호를 당겨 수있는 것은 함께 나열

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

또는'List.map을. phones >> List.concat' – ZhekaKozlov

+0

많은 분들께 감사드립니다. @Chad, 한 줄로 문제를 풀어 놓았습니다. –

+0

나쁨에 대해 아무것도 느끼지 않을 것입니다! 계속해서 기능적 스타일의 간결함이 자랄 것입니다 –