J: 프렛과 스크립트

J: 프렛과 스크립트

J 언어의 프렛(frets)과 스크립트(scripts) 개념을 설명해요. 행 구분자, 스크립트 입·출력, 직접 입력 방식과 명시적 정의를 다뤄요.

출처: 문서

본문

호스트 시스템은 개별 행으로 나누는 경계를 표시하기 위해 흔히 "라인피드" 또는 "캐리지 리턴" 문자 10{a. 또는 13{a.(또는 둘을 함께)를 프렛(frets)으로 사용해요. 0개 이상의 프렛을 가진 문자 목록을 스크립트(script)라고 불러요.

부록 A에서 자세히 설명하듯, 스크립트 tt 1!:2 <'abc't=: 1!:1 <'abc' 형태의 표현으로 파일에 저장하고 검색할 수 있으며, 0!:11 <'abc' 표현으로 실행할 수 있어요.

0 : 0 구(phrase)는 스크립트를 편리하게 입력하게 해줘요. 뒤이어 오는 키 입력은 있는 그대로의 문자로 받아들여지고, 보통 입력을 끝내는 엔터 키는 프렛으로 받아들여지며, 입력은 마지막 프렛으로 받아들여지는 외로운 오른쪽 괄호로 끝나요. 예를 들어:


   s=: 0 : 0
y*%:y
:
x*!y
)

   a. i. s                    The character with index 10 marks the end of each line
121 46 42 37 58 121 46 10 58 10 120 46 42 33 121 46 10

스크립트 s의 박스 및 표 표현은 다음과 같이 얻을 수 있어요:


   ]b=: <;._2 s               Cut on the final fret and exclude the frets
+-----+-+----+
|y*%:y|:|x*!y|
+-----+-+----+

   ]t=: >b
y*%:y
:
x*!y

이 표현들 r 중 어느 것이든 명시적 정의 접속사(explicit definition conjunction)의 오른쪽 인자로 사용되어 부사(1 : r), 접속사(2 : r), 또는 동사(3 : r 또는 4 : r)를 만들어 낼 수 있어요. 예를 들어:


   f=: 3 : s
   f 9                        The colon in the script separates the monadic and dyadic cases
27

   3 f 4                      The x and y refer to the left and right arguments
72

a=: 1 : 0, c=: 2 : 0, v=: 3 : 0는 부사, 접속사, 동사의 직접 입력(direct entry)을 제공해요.

스크립트 파일은 J의 일차식(primaries)을 보완하는 함수와 기타 개체를 정의할 수 있어요. 이들은 상대적인 일반성에 따라 흔히 이차(secondary) 또는 삼차(tertiary) 함수라고 불러요.

더 알아보기 (Learn more)

출처: H. Frets and Scripts