J: 포맷

J: 포맷 (Intro 13)

J 입문 13장에서는 포맷 함수(format) ":가 각 열에 지정된 폭과 소수점 이하 지정된 자릿수로 숫자 표를 읽기 좋게 만드는 방법을 설명해요.

출처: 문서

본문

다음 같은 숫자 표:


   ]t=:(i.4 5)%3
      0 0.333333 0.666667       1 1.33333
1.66667        2  2.33333 2.66667       3
3.33333  3.66667        4 4.33333 4.66667
      5  5.33333  5.66667       6 6.33333

각 열에 대해 지정된 폭과, 소수점 이하 지정된 자릿수로 나타나도록 포맷하면 더 읽기 좋게 만들 수 있어요. 예를 들어:


   ]f=: 6j2 ": t
  0.00  0.33  0.67  1.00  1.33
  1.67  2.00  2.33  2.67  3.00
  3.33  3.67  4.00  4.33  4.67
  5.00  5.33  5.67  6.00  6.33

포맷 함수 왼쪽 인자의 실수부는 열 폭을 지정하고, 허수부는 소수점 뒤에 올 자릿수를 지정해요.

포맷된 표는 원래 표 t와 많이 비슷해 보이지만, 숫자가 아니라 문자들의 표예요. 예를 들어:


   $t
4 5

   $f
4 30

   +/t
10 11.3333 12.6667 14 15.3333

   +/f
|domain error
|       +/f

그러나 그런 문자 표에 적용된 do 또는 execute 함수(".)는 대응하는 숫자 표를 산출해요:


   ". f
   0 0.33 0.67    1 1.33
1.67    2 2.33 2.67    3
3.33 3.67    4 4.33 4.67
   5 5.33 5.67    6 6.33

   +/ ". f
10 11.33 12.67 14 15.33

연습문제 (Exercises)

13.1

12절에서 정의한 프로그램들을 사용해 다음 표현들을 실험해 보세요:


5j2 ": d=: %: i.12
5j2 ":,.d
fc=: 5j2&":@,.
fc d
20 (fc@h3 ,. h5) d
20 (fc@h3 ,. '|'&,.@h5) d
plot=: fc@h3,.'|'&,.@h5
20 plot d

더 알아보기 (Learn more)

출처: Intro 13. Format