함수가 비어있을 수있는 인수 중 하나 인 list
을 허용하고 함수 자체가 비어있는 것으로 처리하면 (즉, 비어있을 것으로 예상 함), 하스켈에서 다루는 방법은 무엇입니까? 목록을 사용하거나 목록을 사용 하시겠습니까?목록을 전달하거나 목록을 전달 하시겠습니까?
foo [] =
-- do something if list is empty
...
foo (x:xs) =
-- do something if list is not empty
...
왜 어쩌면 목록을 전달하려고합니까? 필자는 목록이 매개 변수로 필요하지 않은 함수의 두 번째 변형을 구현하는 것이 더 좋을 것이라고 생각합니다. 그런 다음 함수의 호출 측에서 목록을 호출하거나 목록이 필요하지 않은지 결정합니다. –
'head'와 같은 일부 표준 함수는 비어 있지 않은 목록을 필요로한다는 사실에 혼란 스러울 수 있습니다. 이 기능들은 이제 오용으로 널리 간주됩니다. 왜냐하면리스트 타입은'[]'이 좋은 값이라는 것을 거의 항상 이해하고 있습니다. 하나 이상의 요소가 있음을 표현하기 위해 ['NonEmpty'] (http://hackage.haskell.org/package/NonEmpty-0.1/docs/Data-List-NonEmpty.html)를 사용할 수 있습니다. – leftaroundabout