하스켈에서 다음 코드를 작성하는 더 좋고 더 간결한 방법이 있습니까? 나는 if..else
을 사용하여 시도했지만 다음보다 읽기 쉽지 않습니다. 나는 xs
리스트 (이것은 엄청납니다!)를 8 번 지나서 8 개의 그룹으로 분리하는 것을 피하기를 원합니다. groupBy
Data.List
은 하나의 테스트 조건 함수, 즉 (a -> a -> Bool) -> [a] -> [[a]]
만을 취합니다.여러 개의 테스트 함수를 가진 groupBy
x1 = filter (check condition1) xs
x2 = filter (check condition2) xs
x3 = filter (check condition3) xs
x4 = filter (check condition4) xs
x5 = filter (check condition5) xs
x6 = filter (check condition6) xs
x7 = filter (check condition7) xs
x8 = filter (check condition8) xs
results = [x1,x2,x3,x4,x5,x6,x7,x8]
Landei의 답변이 더 효율적이라고 생각하지만 매우 우아합니다. – is7s
나는 그렇게 확신하지 않는다. 처음에는 Landei 's가 무엇인가하기 전에 전체 목록을 뒤집습니다. – ehird
다른 토론 후 다른 곳에서 더 좋은 구현 방법을 생각해 냈습니다. 내 대답을 업데이트했습니다. – ehird