하스켈과 같은 언어를 사용하면 자신 만의 연산자를 만들 수 있습니다. 다음 답변은 연산자에서 허용되는 구두점 문자를 설명합니다. https://stackoverflow.com/a/10548541/783743기본 라틴 소문자 알파벳 매핑에 대한 아스키 구두점 문자
JavaScript는 다른 한편으로는 JavaScript와 같은 언어는 변수 이름에 구두점 문자 (옆에 $
)를 사용하는 것을 허용하지 않습니다. [1]
하스켈의 하위 집합을 JavaScript로 컴파일하는 컴파일러를 작성하고 있는데 연산자를 유효한 JavaScript 식별자로 변환하는 방법을 모르겠습니다.
따라서 각 구두점 문자를 기본 라틴 소문자 알파벳 (즉, a-z
)으로 매핑하기로 결정했습니다. 예를 들어 :
& = a
| = l
@ = q
그러나 대신 자신에 대한 문자 매핑을 결정, 내가 먼저 다른 사람이 이미 같은 일을했는지 여부를 매핑하는 방법을 결정하는 표준이인지 알고 싶어요.
이 질문은 주로 (어떤 이유에서든 StackOverflow에서 엄격하게 허용되지 않는) 의견 기반이 될 수 있음을 알고 있습니다. 그러므로 나는 (아마도 링크가있는) "이것을 수행하는 방법"이라는 것을 확실하게 밝히는 표준적인 답변만을 찾고 있습니다. opine을 원할 경우 주석에서 그렇게 할 수 있습니다. $
가 너무 알파벳에 매핑하는 것이 좋을 것이다 자바 스크립트에서 식별자에 대한 유효한 문자
! # $ % & * + ./<=> ? @ \^| - ~
있지만 :
내가 알파벳에 매핑 할 19 자 현재이 있습니다.
[1] 속성 이름에 특수 문자가있을 수 있지만 그 추한 해킹.
[Haskell -> JS?] (http://www.haskell.org/haskellwiki/The_JavaScript_Problem#Haskell_-.3E_JS) – merlin
질문 : js 코드를 사람이 읽을 수있게 만들었습니까? – didierc
@didierc 제 생각에는'True.aa (True)'는'True [ "&&"] (True)'보다 사람이 읽을 수 있습니다. 후자의 경우는 좀 더 설명력이 있지만 제 생각에는보기가 흉하게 보입니다. –