2
나는이 excellent tutorial을 기초로 하스켈에서 간단한 정규 표현식 작업을하고 있는데, 명시 적 타입 시그니춰를 사용하여 =~
regexp 연산자가 String
을 반환하도록하는 조언을 따르고 있습니다. 내 문제는 그 다음이 추가 조작 (기본적으로 toUpper
결과) 및 나는이 작업을 수행하는 방법을 꽤 볼 수 없다는 것입니다.어떻게 하스켈 형식의 서명을 표현식을 통해 사용할 수 있습니까?
나는 아래의 각을 시도하고 각과 나는 비슷한 Couldn't match expected type 'String' against inferred type 'Char'
오류 또는 얻을 :
getSKU :: FilePath -> String
getSKU path =
toUpper $ path =~ "^sku[0-9]{5}" :: String
-- or...
getSKU path =
let key = (path =~ "^sku[0-9]{5}")
in toUpper key
-- or ...
getSKU =
toUpper . sub
where
sub p = (p =~ "^sku[0-9]{5}") :: String
내가 난처한 상황에 빠진거야 - 내가 의지하지 않고 식을 통해 유형 서명 부분의 방법을 표현 할 방법을 완전히 별개의 기능?
GAH 어떻게 바보! 감사합니다 –
@Alex 문제 없습니다. Haskell에서 실수를하는 것은 쉽습니다. 간략한 설명 후에 명백하게 보입니다. – fuz