2016-08-04 2 views
0

filterEntry의 인라인 선언이있는 findEntryByAddress 함수가 있습니다. 다른 부울 검사를 추가하고 싶습니다. 그러나 한 줄에 너무 많은 문자가있을 것입니다.haskell의 다중 행 부울 표현

부울 표현식을 나누려면 어떻게해야합니까? 하나는 행당 하나의 수표입니다.

findEntryByAddress :: Address -> AddressBook -> Maybe Entry 
findEntryByAddress = head <<< filter filterEntry 
    where 
    filterEntry :: Entry -> Boolean 
    filterEntry entry = entry.firstName == firstName && entry.lastName == lastName 

나는 여러 표현에 Haskell's Indentation 가이드, 아무 것도 확인했다. 코드는 purescript-book입니다.

+1

하스켈 또는 Purescript입니까? (질문 제목에 'haskell'이라고 쓰여 있습니다)? 하스켈이라면, 그냥 새 줄에 놓고 들여 쓰기하십시오. – pdexter

답변

3

나는이 질문을 이해하고 있는지 모르겠다.

findEntryByAddress :: Address -> AddressBook -> Maybe Entry 
findEntryByAddress = head <<< filter filterEntry 
    where 
    filterEntry :: Entry -> Boolean 
    filterEntry entry = entry.firstName == firstName && 
         entry.lastName == lastName && 
         entry.age == age 

는 어디에서, 당신은 라인을 이동할 수 있지만, 당신은 당신이 새로운 무언가를 정의 있다고 생각합니다 정의, 그렇지 않으면 하스켈의 시작 후에 발현 한 공간의 나머지를 넣어해야합니다. 그래서이 올바른 :

where f = x && 
     y 

을하지만이되지 않습니다 : 그런데

where f = x && 
y 

, 하스켈, 거기에 더 Boolean 유형, True의 유형이 없으며 FalseBool입니다.