J: 구두점

J: 구두점 (Intro 4)

J 입문 4장에서는 구두점(punctuation) 곧 괄호와, 괄호가 없는 구(phrase)의 실행 순서 규칙을 설명해요.

출처: 문서

본문

영어는 문장을 구두점 짓기 위해 다양한 기호를 써서 그 구들이 해석될 순서를 나타내요. 가령:

The teacher said he was stupid.

The teacher, said he, was stupid.

수학도 해석 순서, 또는 보통 부르는 실행 순서(order of execution)를 지정하기 위해 다양한 장치(주로 괄호)를 사용해요. 또한 괄호가 없는 구를 위한 일련의 규칙(함수들 사이의 계층 포함)을 사용해요. 예를 들어, 거듭제곱은 곱셈보다 먼저 실행되고, 곱셈은 덧셈보다 먼저 실행돼요.

J는 구두점에 괄호를 사용하며, 괄호가 없는 구에 대해 다음 규칙을 적용해요:

  • 동사의 오른쪽 인자는 그 오른쪽에 있는 전체 구의 값이에요.
  • 부사가 먼저 적용돼요. 따라서 구 a */ ba (*/) b와 동등하며, a(*/b)가 아니에요.

예를 들어:


   a=:5
   b=:3
   (a*a)+(b*b)
34

   a*a+b*b
70

   a*(a+(b*b))
70

   (a+b)*(a-b)
16

   a (+*-) b
16

위의 마지막 문장은 지금까지 의미가 할당되지 않은 고립된 구 +-*를 포함해요. 이를 포크(fork)라고 부르며, 그 앞의 문장과 동등해요.

포크는 또한 단항 의미도 가져요, 아래 평균(mean)에서 보여주듯:


   c=:2 3 4 5 6
   (+/ % #) c                 The verb # yields the number of items in its argument
4

   (+/c)%(#c)
4

연습문제 (Exercises)

4.1

수학에서 3x4+4x3+5x2 같은 표현을 다항식(polynomial)이라 불러요. 다음을 입력해 x가 2인 경우 다항식을 평가해 보세요:


   x=: 2
   (3*x^4)+(4*x^3)+(5*x^2)

4.2

수학에서 쓰이는 함수들 사이의 계층은 다항식을 쓸 때 괄호가 전혀 필요 없도록 해준다는 점을 주목하세요. 괄호를 쓰지 않는 동등한 문장을 작성해 보세요.

답: +/3 4 5 * x ^ 4 3 2 또는 (계수 3 4 5와 지수 4 3 2에 먼저 이름을 할당한 뒤) +/c*x^e

더 알아보기 (Learn more)

출처: Intro 4. Punctuation