2009-10-20 5 views
7

내가parenscript 함수가 모두 소문자로 변경되는 이유는 무엇입니까?

 
(parenscript:ps 
(slot-value ($ "#mytextarea") 'selectionStart)) 

그것은 selectionStart 지금 selectionstart라는 자바 스크립트를

 
$('#mytextarea').selectionstart; 

주를 생산하고 실행하면 parenscript를 사용하여. Start에서 대문자 S를 잃어 버렸습니다! 대문자 S는 어떻게 보관합니까?

+2

기본적으로 Common Lisp 양식 (Parenscript는 입력으로 사용됨)은 독자가 대문자로 대문자로 접을 수 있습니다. 'selectionStart'는'SELECTIONSTART'가 될 것이고, Parenscript는 아마도 자바 스크립트 출력을 생성 할 때 다운 케이스가 될 것입니다. – Pillsy

답변

7

Parenscript 자동 그래서, 낙타 표기법에 대한 규칙 (단어를 분리 대시) 명명 혀짤배기 변환됩니다

(parenscript:ps 
(slot-value ($ "#mytextarea") 'selection-start)) 

결과를

"$('#mytextarea').selectionStart;" 
+1

기호에 초기 대문자가 필요한 경우 이름 앞에 별표를 추가해야합니다. –

1

에 Pillsy는 언급으로, 모든 기호가 대문자가된다 Lisp 컴파일러가 읽을 때 기본값. 그래도 그것을 끄는 방법이 있습니다. 자세한 내용은 CLHS, 23.1.2 (Effect of Readtable Case on the Lisp Reader), 및 접근 자 설명 (readtable-case)을 참조하십시오. 예를 들어, 당신이 당신의 리스프 소스 파일에 다음을 넣어 (또한 대소 문자를 구분하는 유일한 실제 설정 틀림없이)은 "반전"모드를 활성화 할 수 있습니다 : 불행하게도

#.(setf (readtable-case *readtable*) :invert) 

을 ParenScript은하지 않는 것 비록 내가 그렇게 할 수는 있지만 (그리고 필자의 의견으로는) 그렇게 할 수는 있지만, 독자적인 읽기 가능 케이스 설정을 많이 사용한다.

+0

Parenscript가 읽기 가능 케이스를 최대한 활용할 수 있다고 어떻게 생각하십니까? Parenscript 컴파일러는 기호가있는 s- 표현식으로 코드를 가져 오므로 기호 이름을 읽는 방법을 알지 못합니다. 이제 독자를 사용자 정의 할 수있는 컴파일 파일 기능이 있지만 모든 PS 코드에서 작동하지 않습니다 . – vsedach

+0

@vsedach 사실입니다. 여전히 제 의견으로는 대소 문자가 혼합 된 기호로 처리하는 것이 무엇인지 명확하게 알 수 있습니다. 남은 유일한 문제는 모두 대문자 및 소문자 기호에 대해해야 할 일입니다. 개인적으로, 나는 기본적으로 INVERT를 제안하거나 단순히 위와 같은 모든 심볼을 역순으로 (역 호환성을 위해) 제공하고 READTABLE-CASE와 마찬가지로 설정을 제안합니다. –

관련 문제