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 |