0
다른 함수의 명령문 패턴이 일치하지 않을 때 실행되는 패턴을 포함하여 다른 패턴에 대해 여러 정의가있는 함수를 만들 수있는 방법이 있습니까?Haskell 함수 패턴이 'otherwise'
예컨대 :
someFunc (pattern1) = def1
someFunc (pattern2) = def2
someFunc (<otherwise/all other possible values>) = def3
또는 이것이 가능하지 않다면, 어떻게 달성 할 수
? 사전에감사합니다!
안부, Skyfe. 위의 기능이 하지 해당
에isJust _ = False
isJust (Just _) = True
때문에 그래서, 대한 명확한
isJust :: Maybe a -> Bool
-- Here we don't care about what's inside the `Just`
isJust (Just _) = True
-- Here we don't care what it is, it's not a `Just` so return `False`
isJust _ = False
은, 패턴이 당신이 그들을 정의하는 순서로 시도됩니다 :
하지만 두 정의가 모두 가능하면 어떻게 될까요? 그러면 자동으로 입력 값에 맞는 첫 번째 정의가 사용됩니까? 귀하의 예제에서 Just 값은 와일드 카드로 두 번째 정의가 너무 맞을 것입니다. – user2999349
패턴을 정의한 순서대로 시도합니다. 그래서'isJust _ = False'; 'isJust (Just _) = True'는 같은 함수가 될 수 없습니다. – bheklilr
알았어, 고마워! – user2999349