여러 패턴을 사용하는 Frege의 함수를 정의하는 데 문제가 있습니다. 기본적으로 튜플 목록을 반복하여 매핑을 정의합니다. 나는 다음과 같은 오류 얻을Frege에서 여러 패턴을 정의하는 방법은 무엇입니까?
foo :: a -> [(a, b)] -> b
foo _ [] = [] --nothing found
foo bar (baz, zab):foobar
| bar == baz = zab
| otherwise = foo bar foobar
: 나는 다음에 그것을 아래로 단순화했습니다 내가 함수 정의에서 여러 패턴을 사용 할 this 같은 다른 예를 본 적이
E morse.fr:3: redefinition of `foo` introduced line 2
를, 그래서 내가 뭘 잘못하고 있는지 모르겠다. 왜 여기에 오류가 발생합니까? Frege에 익숙하다 (그리고 하스켈에 새로 온 것). 그래서 내가 놓치고있는 간단한 것이 있을지 모르지만, 나는 이것이 정말로 문제가되어야한다고 생각하지 않는다.
버전 3.24-7.100으로 컴파일 중입니다.
'(baz, zab) : foobar' 패턴 주위에 괄호를 추가해야 할 수도 있습니다. 'foo bar ((baz, zab) : foobar) '와 같은 것. – Alec