Programing

Haskell 운영자에게 허용되는 문자는 무엇입니까?

lottogame 2020. 11. 18. 08:20
반응형

Haskell 운영자에게 허용되는 문자는 무엇입니까?


어딘가에 허용되는 문자의 전체 목록이 있습니까, 아니면 식별자와 연산자에서 사용할 수있는 것을 결정하는 규칙이 있습니까?


로부터 하스켈 보고서 이 허용 기호에 대한 구문은 다음과 같습니다

a | b수단 a or b

a<b> 방법 a except b

special    ->   ( | ) | , | ; | [ | ] | `| { | } 
symbol     ->   ascSymbol | uniSymbol<special | _ | : | " | '>
ascSymbol  ->   ! | # | $ | % | & | * | + | . | / | < | = | > | ? | @
                \ | ^ | | | - | ~
uniSymbol  ->   any Unicode symbol or punctuation 

따라서 기호 special | _ | : | " | '는 예약 된의 기호를 제외하고 ASCII 기호 또는 유니 코드 기호 입니다.

다음 문자는 사용할 수 없음을 의미합니다. | , ; [ ] ` { } _ : " '

아래 몇 단락, 보고서는 Haskell 연산자에 대한 완전한 정의를 제공합니다.

varsym     -> ( symbol {symbol | :})<reservedop | dashes>
consym     -> (: {symbol | :})<reservedop>
reservedop -> .. | : | :: | = | \ | | | <- | -> | @ | ~ | =>

연산자 기호는 위에 정의 된대로 하나 이상의 기호 문자로 구성되며 어휘 적으로 두 개의 네임 스페이스로 구분됩니다 (섹션 1.4).

  • 콜론으로 시작하는 연산자 기호는 생성자입니다.
  • 다른 문자로 시작하는 연산자 기호는 일반 식별자입니다.

콜론 ":"은 하스켈 목록 생성자로만 사용하도록 예약되어 있습니다. 이것은 "[]"및 "[a, b]"와 같은 목록 구문의 다른 부분과 동일하게 처리됩니다.

접두사 부정에 대한 특수 구문을 제외하고 모든 연산자는 중위이지만 각 중위 연산자는 부분적으로 적용된 연산자를 생성하기 위해 섹션에서 사용할 수 있습니다 (섹션 3.5 참조). 모든 표준 중위 연산자는 미리 정의 된 기호 일 뿐이며 리바운드 될 수 있습니다.


로부터 하스켈 2010 보고서 §2.4 :

연산자 기호 는 하나 이상의 기호 문자로 구성됩니다.

§2.2기호 문자!#$%&*+./<=>?@\^|-~:"모든 [비 ASCII] 유니 코드 기호 또는 구두점"으로 정의합니다.


내가 찾고 있던 것은 캐릭터의 전체 목록이었습니다. 다른 답변을 바탕으로 전체 목록은 다음과 같습니다.

유니 코드 구두점 :

유니 코드 기호 :

그러나 Haskell에서 특별한 의미가있는 다음 문자는 제외 합니다.

(),;[]`{}_:"'

A :는 연산자의 첫 문자로만 허용되며 생성자를 나타냅니다 ( 콜론으로 시작하는 연산자 기호는 생성자 참조 ).

참고 URL : https://stackoverflow.com/questions/10548170/what-characters-are-permitted-for-haskell-operators

반응형