나는 다음과 같은 구조의 재귀 데이터 형식을 선언했습니다 "/" "라는 이름의 값 생성자를 가질 수 나는 GET /"controller"/"action"
처럼 귀여운 표정에서 그것을 중위 수 있습니다 그러나, 나는 그렇게하려고하면 :.나는
import Prelude hiding ((/))
infixr 5/
data Path = GET | POST | Path/String
을 ... 나는 얻을이 :
Path.hs:4:30: parse error on input `/'
을 :/
또는 :
으로 시작하는 다른 특수 문자 시퀀스로 바꿔도 동일한 세 줄이 올바르게 컴파일됩니다.
그래서 가치 생성자의 이름을 지정할 수있는 방법이 있습니까 /
? 나는 별도의 기능이 바로 그것 Slash
의 이름을 지정하고 다음 선언 할 수 있다는 사실을 알고 :
(/) :: Path -> String -> Path
(/) = Slash
을 ...하지만 그와 같이 나에게 패턴 일치를 못하게 :
request :: Path -> String
request path = case path of GET /"hello" -> "Hello!"
GET /"goodbye" -> "Goodbye!"
내 코드 전체에 ': /'이 표시되는 것은 저에게 왜 그렇게 실망했는지 궁금하게 만듭니다. – zinglon
@zinglon : Hrhrhrhrhr. 다행스럽게도 영숫자가 아닌 유니 코드 문자 모양의 문자는 연산자에서 사용할 수 있으므로 이모티콘 가능성은 거의 무한합니다. 특히 접두사를 사용하는 것과 같은 괄호로, 당신이 그렇게 할 수있는 모든 교대 - JIS 쓰레기를 상상해보십시오! –
게다가, 하스켈에 관한 좋은 점 중 하나는 코드가 왜 당신에게 실망 스러운지 궁금하지 않아도된다는 것입니다. GHC가 그것에 대해 모두 알려줄 것입니다. –