Pythonでは関数もオブジェクトと知り、目から鱗が落ちる気がしました。
i=inputなどとして関数名の省略は、
使っていましたが、
実は関数を変数に代入していたのです。
そこで関数に関数を渡すという
プログラムを作ってみました。
test関数に2つのパラメータを渡します。
aは関数、bは変数
test内でa関数にbを渡しています。
配列に関数を入れて順次test呼んでます。
受け渡した関数を比較もしてみました。
実行結果です。
遠い昔こんな使い方できないかなという
空想をしたような気もします。
次が関数型のプログラミング(たぶん)
なかなか理解しづらかったのですが
少し何かつかめた気がします。
testA a〜b-1までの数字を表示します。
ループ文は使ってないです。
range(n)がn-1までの理由はこれかも。
haskell関数の書き方に似ています。
同じようなものは何回も見ていますが、
自分で作ってみて理解できました。
testB a〜b-1までの配列を戻します。
testC a〜b-1までの配列を戻します。
ただし3の倍数は"ho"に変換。
(しまった! r 使う必要ない。)
実行結果です。
お話にするとこんな感じです。
人が並んでいます。最初の人はお皿を渡して、「これにオニギリを1個ずつおいてって、いっぱいになったら戻してきて」
と伝言ゲームをはじめます。
1オニギリおく
2オニギリおく
3オニギリおく
4オニギリおく
5オニギリおく
6オニギリおく(いっぱい)
6かえす
5かえす
4かえす
3かえす
2かえす
1かえす
ぶじ、お皿いっぱいにオニギリが並んで戻ってきました。
i=inputなどとして関数名の省略は、
使っていましたが、
実は関数を変数に代入していたのです。
そこで関数に関数を渡すという
プログラムを作ってみました。
test関数に2つのパラメータを渡します。
aは関数、bは変数
test内でa関数にbを渡しています。
配列に関数を入れて順次test呼んでます。
受け渡した関数を比較もしてみました。
実行結果です。
遠い昔こんな使い方できないかなという
空想をしたような気もします。
次が関数型のプログラミング(たぶん)
なかなか理解しづらかったのですが
少し何かつかめた気がします。
testA a〜b-1までの数字を表示します。
ループ文は使ってないです。
range(n)がn-1までの理由はこれかも。
haskell関数の書き方に似ています。
同じようなものは何回も見ていますが、
自分で作ってみて理解できました。
testB a〜b-1までの配列を戻します。
testC a〜b-1までの配列を戻します。
ただし3の倍数は"ho"に変換。
(しまった! r 使う必要ない。)
実行結果です。
お話にするとこんな感じです。
人が並んでいます。最初の人はお皿を渡して、「これにオニギリを1個ずつおいてって、いっぱいになったら戻してきて」
と伝言ゲームをはじめます。
1オニギリおく
2オニギリおく
3オニギリおく
4オニギリおく
5オニギリおく
6オニギリおく(いっぱい)
6かえす
5かえす
4かえす
3かえす
2かえす
1かえす
ぶじ、お皿いっぱいにオニギリが並んで戻ってきました。