J: 이차 함수(Secondaries)

J: 이차 함수(Secondaries) (Intro 28)

J 입문 28장에서는 언어에서 제공된 원시형·일차 함수(primitives/primaries)를, 인식하기 쉬운 클래스에 속하는 이름의 이차 함수(secondaries)로 보충하는 편리함을 설명해요.

출처: 문서

본문

언어에서 제공된 원시형·일차 함수를, 이름이 쉽게 인식되는 클래스에 속하는 이차 함수로 보충하는 것이 편리해요. 다음 예들은 대문자로 시작하는 이름을 사용해요:

이름 정의 의미
Ad=: [ 0:}-@>:@$@]{.] 대각선 스칼라 추가(Append diagonal scalar)
Ai=: >:@i. 증가된 정수(Augmented integers)
Area=: [: Det ] ,. %@!@#"1 면적(Area/Vol). Area tet=:0,=i.3 시도
Bc=: i. !/ i. 이항 계수(Binomial coefficients)
Bca=: %.@Bc 이항 계수(교번, alternating)
By=: ' '&;@,.@[ ,. ] By(포맷; Ta 참조)
Cpa=: ]%.i.@#@]^/Ei@[ 다항 근사 계수(Coeffs of poly approx)
CPA=: 1 : 'x@] %.i.@#@]^/Ei@[' 다항 근사 계수(부사)
Det=: -/ . * 행렬식(Determinant)
Dpc=: 1: }. ] * i.@# 다항 계수 미분(Differentiate poly coeffs)
D1=: ("0)(D.1) 도함수(스칼라, 1차; Derivative)
Ei=: i.@(+*+0&=) 확장 정수(Extended integers)
Epc=: Bc@# X ] 다항 계수 확장(Expand poly coeffs)
Ipc=: 0: , ] % Ai@# 다항 계수 적분(Integrate poly coeffs)
Inv=: ^:_1 역(Inverse)
Id=: =@i. 항등 행렬(Identity matrix)
Mat=: -: /:~ 단조 상승 검정(Monotone ascending test)
Mdt=: -: \:~ 단조 하강 검정(Monotone descending test)
Mrg=: `+&$ {. ,@( :@,:)`
Over=: ({.;}.)@":@, Over(포맷; Ta 참조)
Pad=: 2 : 'x%.]^/Ei@(y"_)' 차수 다항 근사(Polynomial approx of degree)
Pp=: +//.@(*/) 다항 계수 곱(Polynomial coeffs product)
Si=: (Ei@+: - |) : (-/ i.) 대칭·감쇠 정수(Symmetric and subsiding int)
Span=: 2 : 'y"_ x\ ]' 왼쪽 인자 적용의 스팬(Span)
S1=: |:@|@(^!._1/~%.^/~)@i. 제1종 스털링 수(Stirling numbers)
S2=: |:@ (^/~%.^!._1/~)@i. 제2종 스털링 수(Stirling numbers)
Ta=: 1 : '[By]Over x/' 표 부사(Table adverb)
Thr=: ] * 0.1&^@[ <: |@] 0이 아닌 임계(Threshold for non-zero)
Tile=: $@]{.[$~$@]+2:|1:+$@] 타일(Tile. 0 1 Tile i. 2 3 4 시도)
X=: +/ . * 곱(행렬 곱, Times)
XA=: -/ . * 곱(교번, Times alternating)

연습문제 (Exercises)

28.1

이차 함수들의 정의(적어도 이 연습에서 쓰이는 것들)를 입력한 다음 다음 표현들을 입력해 보세요:


(Ai 2 3);(Ai 2 _3);(Ei 2 3);(Ei 2 _3)
(i.;i.@-;Ai;Ai@-;Ei;Ei@-) 4
(Si 4);(7 4 Si 4)
+Ta~@i. 4
(S1;S2) 7
(];X/;%/;%./;(%./%{.)) y=: (Bc ,: Bca) 5
(0 1&Cb;1 _1&Cb) i. 2 3 4

28.2

이차 함수들로 더 많은 실험을 수행해 보세요.

더 알아보기 (Learn more)

출처: Intro 28. Secondaries