- [案]
- 標準のprintを強化すればいい。配列を普通に関数の返値にできて、その上で簡単に配列や構造体を表示できればいい。
- まず、Essenでは任意の配列を表示しようとしたときは、それを行に展開する。
>print(a)
0:0,
1:1,
2:1,
3:2,
4:3,
5:5,
6:8,
7:13,
8:21,
9:34,
- この表示が気に入らなければ、インデックス非表示を指示する。
>printf((0:(index:0)), a) // 展開深さ0では、index=0
0,
1,
1,
2,
3,
5,
8,
13,
21,
34,
- 改行を阻止したければ、配列の配列にしてしまう。
>printf((1:(index:0)), (a))
0:(0, 1, 1, 2, 3, 5, 8, 13, 21, 34),
- 完全に望む表示ではないかもしれないけど、それなりに近づけることはできた。
- もっとがんばればもっとできるかもしれない。
>printf((0:(index:0), 1:(index:0 separator:" ")), (a))
(0 1 1 2 3 5 8 13 21 34),
- っていうか、配列の添え字が整数で0から始まっていて1ずつ増えるのなら、index=0をデフォルトにしてもいいかもしれない。
- なんにせよ、printfでどこまでやるかはそんなに難しく考えなくていいと思う。徹底的に細かくやりたければ、自前でforループをまわして好きなように表示すればいいだけのことなんだから。
- 要点は、標準のprintだけでもそれなりには表示できること。それが達成されていれば、ユーザはがんばって表示しようとはしなくなる。そうなれば表示ではなく結果を返すように仕向けやすい。