J: 동사와 부사
J: 동사와 부사 (Intro 3)
J 입문 3장에서는 동사(verbs)와 부사(adverbs)의 개념을 설명해요. 부사가 동사에 적용되어 새 동사를 만드는 방식을 다뤄요.
출처: 문서
본문
2장의 문장 %a에서 %는 a에 "작용하여" 결과를 만들며, 따라서 %a는 영어에서 동사가 명사나 대명사에 작용하는 개념과 유사해요. 이제부터 지금까지 쓴 수학 용어 함수(function) 대신(또는 그에 더해) 동사(verb)라는 용어를 채택할 거예요.
문장 +/ 1 2 3 4는 1+2+3+4와 동등해요. 부사 /는 자신의 동사 인자 +에 적용되어 새 동사를 만들어 내며, 그 동사의 인자는 1 2 3 4이고, 자신의 인자 항목들 사이에 동사 +를 삽입하는 것으로 정의돼요. 삽입 부사(insert adverb)의 다른 인자들도 비슷하게 다뤄져요:
*/b=:2 7 1 8 2 8
1792
<./b
1
>./b
8
부사를 적용해 얻은 동사는 (원시 동사처럼) 단항과 이항 경우를 모두 가질 수 있어요. 두 용도 때문에 부사 /는 insert 또는 table이라고 불려요. 여기 /의 경우 이항 경우는 표(table)를 만들어 내요. 예를 들어:
2 3 5 +/ 0 1 2 3
2 3 4 5
3 4 5 6
5 6 7 8
동사 over=:({.;}.)@":@,와 by=:' '&;@,.@[ ,.]는 (즉시 연구보다는 사용을 위해) 유틸리티로 입력할 수 있으며, 위에서 만든 덧셈 표 같은 함수 표의 해석을 명확히 해줘요. 예를 들어:
a=: 2 3 5
b=: 0 1 2 3
a by b over a +/ b
+-+-------+
| |0 1 2 3|
+-+-------+
|2|2 3 4 5|
|3|3 4 5 6|
|5|5 6 7 8|
+-+-------+
b by b over b </ b
+-+-------+
| |0 1 2 3|
+-+-------+
|0|0 1 1 1|
|1|0 0 1 1|
|2|0 0 0 1|
|3|0 0 0 0|
+-+-------+
연습문제 (Exercises)
3.1
d=: i.5을 입력하고 문장 st=: d-/d와 pt=: d^/d를 입력해 뺄셈과 거듭제곱에 대한 함수 표를 만들어 보세요.
3.2
이전 섹션들의 더 많은 함수(관계 <, =, >와 lesser-of, greater-of 포함)에 대한 표를 만들어 보세요.
3.3
동사 |.과 |:을 다양한 표에 적용하고 그들이 무엇을 하는지 말해 보세요.
3.4
전치(transpose) 함수 |:는 뺄셈 표는 바꾸지만 곱셈 표에는 효과가 없는 것처럼 보여요. 전치했을 때 표가 변하지 않는 함수들의 성질을 말해 보세요.
답: 그들은 가환적(commutative)이다.
3.5
d by d over d!/d을 입력하고 이항 !의 정의를 말해 보세요.
답: !은 이항 계수(binomial coefficient) 또는 outof 함수이며, 3!5은 다섯 개에서 세 개를 고르는 방법의 수입니다.