J: 항등 함수와 중성

J: 항등 함수와 중성 (Intro 27)

J 입문 27장에서는 항등 함수(identity functions)와 항등 원소·중성(neutral), 기본 특성 부사 b., 그리고 등치식(tautology)을 설명해요.

출처: 문서

본문

단항 0&+1&*은 항등 함수이고, 0과 1은 각각 이항 +*의 항등 원소 또는 중성(neutral)이라 불려요. 빈 목록에의 삽입은 삽입된 이항의 중성을 산출해요. 예를 들어:


   +/ i.0         +/''           +/0{. 2 3 5
0              0              0

   */i.0          */''           */0{. 2 3 5
1              1              1

이 결과들은 목록 분할에 유용해요. 분할 중 하나가 비어 있어도 어떤 분명한 관계들이 계속 성립하도록 보장해 주기 때문이에요. 예를 들어:


   +/ a=: 2 3 5 7 11
28

   (+/4{.a)+(+/4}.a)
28

   (+/0{.a)+(+/0}.a)
28

   */a
2310

   (*/4{.a)*(*/4}.a)
2310

   (*/0{.a)*(*/0}.a)
2310

항등 함수와 함수의 다른 기본 특성(계급 같은)은 아래에서 보여주듯 부사 b.에 의해 주어져요:


   ^ b. _1     Inverse
^.

   ^ b. 0      Ranks
_ 0 0

   ^ b. 1      Identity function
$&1@(}.@$)

연습문제 (Exercises)

27.1

다음 표현들의 결과를 예측하고 테스트해 보세요:


*/''
<./''
>./''
>./0 4 4 $ 0
+/ . */ 0 4 4 $ 0
1 2 3 4 +&.^./ 5 6 7 8

27.2

이항 {@;을 실험하고, 수학에서 그것을 기술하는 용어를 말해 보세요.

답: 데카르트 곱(Cartesian product)

27.3

단항 (%:@~. +/ . * =)%:이 동등하다는 주장을 검증하고, 반복된 요소를 가진 1 4 1 4 2 같은 목록에 적용될 때 전자의 유용성을 말해 보세요.

답: 함수 %:(실행에 비용이 들 수 있는 함수)은 (nub 함수 ~.이 선택한) 인자의 서로 다른 요소들에만 적용됩니다.

27.4

오른쪽의 주석을 읽기 전에 다음 실험들에 대해 논평해 보세요:

J 의미
a=: 2 3 5 [ b=: 1 2 4
a (f=: *:@+) b 합의 제곱(Square of sum)
a (g=: +&*: + +:@*) b 제곱들의 합 더하기 이중 곱
a (f=g) b 함수들의 항등 표현
a (f-:g) b 등치식에서 f와 g
taut=: f-:g (그 결과가 항상 참, 즉 1)

27.5

f-:g 같은 구는 이항 경우에만, 단항 경우에만, 또는 둘 다에 등치식일 수 있어요. 다음 등치식들을 읽고 쓰기의 연습으로 사용하되 적용 가능성(Dyad only 등)도 함께 진술해 보세요:

J 의미
t1=: >: -: > +. = (Dyad에만) 원시형 >:은 크거나 같음과 동일
t2=: <. -: -@>.& - (둘 다) lesser-of는 neg over greater-of over neg; Floor는 neg on ceiling on neg
t3=: <. -: >.&.- t2와 같지만 under 사용
t4=: *:@>: -: *: + +: + 1: (Monad) a+1의 제곱은 a의 제곱 더하기 2a 더하기 1
t5=: *:@>: -: #.&1 2 1"0 다항식 사용한 t4와 같음
t6=: ^&3@>: -: #.&1 3 3 1"0 세제곱에 대한 t5와 같음
bc=: i.@>: ! ] 이항 계수
t7=: (>:@]^[) -: (]#.bc@[)"0 k-제곱에 대한 t6과 같음(k&t7)
s=: 1&o. 사인(Sine)
c=: 2&o. 코사인(Cosine)
t8=: s@+-:(s@[*c@])+(c@[*s@]) (Dyad) 덧셈과 뺄셈 사인 공식
t9=: s@--:(s@[*c@])-(c@[*s@]) 사인 공식
det=: -/ . * 행렬식(Determinant)
perm=: +/ . * 퍼머넌트(Permanent)
sct=: 1 2&o."0@(,\"0) 사인·코사인 표
t10=: s@- -: det@sct sin·cos 표의 행렬식 사용한 t9와 같음
t11=: s@+ -: perm@sct 퍼머넌트 사용한 t8과 같음
S=: 5&o. 쌍곡 사인(Hyperbolic sine)
C=: 6&o. 쌍곡 코사인(Hyperbolic cosine)
SCT=: 5 6&o."0@(,\"0) Sinh·Cosh 표
t12=: S@+ -: perm@SCT sinh의 덧셈 정리
SINH=: ^ .: - 지수의 기(odd) 부분
COSH=: ^ .. - 지수의 우(even) 부분
t13=: SINH -: S Sinh는 지수의 기 부분
t14=: COSH -: C Cosh는 지수의 우 부분
sine=: ^&.j. .: - 사인은 지수의 기 부분
t15=: sine -: s 0j1 곱셈 아래

27.6

오른쪽의 주석을 읽기 전에 다음 표현들에 대해 논평해 보세요:

J 의미
g=: + > >. 합이 최댓값을 초과하는지 테스트
5 g 2 양의 인자에 대해 참
5 g _2 _1 0 1 2 그러나 일반적으로는 참이 아님
f=: *.&(0&<) 두 인자가 모두 0을 초과하는지 테스트
theorem=: f <: g f 결과의 진릿값이 g의 것을 초과하지 않음. "f(가 참)이면 g(가 참)" 또는 "f는 g를 함의한다"고도 말할 수 있음
5 theorem _2 _1 0 1 2

더 알아보기 (Learn more)

출처: Intro 27. Identity Functions and Neutrals