EssenMemo0001
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* Essenの開発メモ#0001
-(by [[K]], 2017.04.19)
** こういうのがやりたい#1
-''[問題提起]''
-「フィボナッチ数列を10個表示してください」という課題は、...
void fibo()
{
int a[10], i;
a[0] = 0;
a[1] = 1;
for (i = 2; i < 10; i++)
a[i] = a[i - 2] + a[i - 1];
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
}
0 1 1 2 3 5 8 13 21 34
-私はこれが気に入らない。だってこのプログラムは出力結果の...
-じゃあこうしたらどうか?
void fibo(int *a, int n)
{
int i;
a[0] = 0;
a[1] = 1;
for (i = 2; i < n; i++)
a[i] = a[i - 2] + a[i - 1];
}
-これはいい。結果が変数に入っているから。
-しかし今度はこれを簡単に表示する手段がない。
-つまり、きれいに出力すれば結果を活用しにくくなるし、かと...
~
-''[案]''
-標準の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ずつ増...
--もしそうならこうなる。
>printf((1:(separator:" ")), (a))
(0 1 1 2 3 5 8 13 21 34),
-なんにせよ、printfでどこまでやるかはそんなに難しく考えな...
-要点は、標準のprintだけでもそれなりには表示できること。...
-あ、こうすればいいんじゃないか?
>printf((0:(separator:" ")), a)
0 1 1 2 3 5 8 13 21 34
** こういうのがやりたい#2
-しかし上記を見ていると、カッコがやたらと多い。私はそれは...
-今のところEssenでは、小カッコと角カッコを区別しないので、
>printf([[separator:" "]], a)
-のように書くことはできる。しかしなあ、それでもややこしい...
-どうしたらいいのかなー。
-簡単に構造体・配列が作れるからって、それを多用するのがい...
-それともカッコ以外で構造体・配列が作れるようになるべきな...
-うーむー、まだ名案がない・・・。
-printfの引数の範囲を明示しなくてもいいことにするか?(セ...
>printf [[separator:" "]], a;
-こういう書き方を許すと、引数の範囲を明示したいときに
>(printf [[separator:" "]], a)
-とかやるようになって、さらにLispっぽい書き方が選べるよう...
* こめんと欄
#comment
終了行:
* Essenの開発メモ#0001
-(by [[K]], 2017.04.19)
** こういうのがやりたい#1
-''[問題提起]''
-「フィボナッチ数列を10個表示してください」という課題は、...
void fibo()
{
int a[10], i;
a[0] = 0;
a[1] = 1;
for (i = 2; i < 10; i++)
a[i] = a[i - 2] + a[i - 1];
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
}
0 1 1 2 3 5 8 13 21 34
-私はこれが気に入らない。だってこのプログラムは出力結果の...
-じゃあこうしたらどうか?
void fibo(int *a, int n)
{
int i;
a[0] = 0;
a[1] = 1;
for (i = 2; i < n; i++)
a[i] = a[i - 2] + a[i - 1];
}
-これはいい。結果が変数に入っているから。
-しかし今度はこれを簡単に表示する手段がない。
-つまり、きれいに出力すれば結果を活用しにくくなるし、かと...
~
-''[案]''
-標準の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ずつ増...
--もしそうならこうなる。
>printf((1:(separator:" ")), (a))
(0 1 1 2 3 5 8 13 21 34),
-なんにせよ、printfでどこまでやるかはそんなに難しく考えな...
-要点は、標準のprintだけでもそれなりには表示できること。...
-あ、こうすればいいんじゃないか?
>printf((0:(separator:" ")), a)
0 1 1 2 3 5 8 13 21 34
** こういうのがやりたい#2
-しかし上記を見ていると、カッコがやたらと多い。私はそれは...
-今のところEssenでは、小カッコと角カッコを区別しないので、
>printf([[separator:" "]], a)
-のように書くことはできる。しかしなあ、それでもややこしい...
-どうしたらいいのかなー。
-簡単に構造体・配列が作れるからって、それを多用するのがい...
-それともカッコ以外で構造体・配列が作れるようになるべきな...
-うーむー、まだ名案がない・・・。
-printfの引数の範囲を明示しなくてもいいことにするか?(セ...
>printf [[separator:" "]], a;
-こういう書き方を許すと、引数の範囲を明示したいときに
>(printf [[separator:" "]], a)
-とかやるようになって、さらにLispっぽい書き方が選べるよう...
* こめんと欄
#comment
ページ名: