アルゴリズムとデータ構造演習の課題でわからないことがあったらここで質問し
ましょう。
早速ですが、Scheme演習第一回の(2)の問題の意味がよくわからなくて困って
います。
f^2を返す関数を作れとのことですがこれは単にfを引数にとって2乗するという
のでいいんでしょうか?
でもこれじゃ何だか簡単過ぎるし、1引数関数fとかって書いてあるので何か変
な感じがします。
皆様のご意見をお願いします。
高山, Thu Oct 14 00:07:11 2004TAの方に確認したところ,f^2は合成関数f○fのことらしいです.(本当は白丸は
もっと小さい).
一変数関数関数fを引数として与えると,合成関数f^2を返すような関数を作成せ
よとのことです.関数を返す関数については,HPの2章のlambdaのところに説明
があると思う.
まつもと, Thu Oct 14 02:22:27 2004ありがとうございます。
そうかlambdaを使ってやるのか...
危うくズレたレポートを書くところでした。
高山, Thu Oct 14 21:18:52 2004C言語におけるfree関数についての質問なんですが、これの引数にあたるアドレ
スっていうのは、どのような形で開放されるんでしょうか。
inf main(){
int *p = (int *)malloc(sizeof(int *) * 2);
*p = 3;
*(p+1) = 4;
printf("%d\n", *p);
free(p);
printf("%d\n", *p);
printf("%d\n", *(p+1));
return 0;
}
であれば、当然のごとくfreeの後は正常な値は出てきません。
つまり、確保された2バイト分が両方とも開放されます。
じゃあ、ここでfree(p+1)としたら・・・というと、コンパイルはされますが、
実行時エラーになります。
freeの引数には、mallocで確保された連続したアドレスの、先頭アドレスのみし
か認められていない、という理解でいいんでしょうか。
Y.Sawa, Fri Oct 15 02:19:27 2004もう自己解決したかもしれませんがコメント。
freeの引数には、malloc(やrealloc)で返ってきた値、すなわち領域の先頭への
ポインタを渡します。
あと、細かいところですが
> int *p = (int *)malloc(sizeof(int *) * 2);
は、正しくはたぶん
> int *p = (int *)malloc(sizeof(int) * 2);
と思います。
(環境によっては int と int * のサイズが同じなので、前者でも動いてしまう
と思いますが。)
kai, Sat Oct 16 19:18:33 2004Scheme演習第2回の参考に.
http://sheepman.parfait.ne.jp/20031022.html
まつもと, Mon Oct 25 22:05:02 2004トラックバックされておる罠
伊東, Sun Nov 7 03:52:29 2004しまったttp://で書き始めるべきだった.
まつもと, Sun Nov 7 20:20:06 2004ttp://sheepman.parfait.ne.jp/20031022.html
あひゃひゃ
tp://sheepman.parfait.ne.jp/20031022.html
んぬ?
伊東, Sun Nov 7 23:52:27 2004この問題って何を示せばいいんだろう?他変数引数で表現できるものはすべて,
1変数引数の上手い組み合わせで表現できることを示せばいいのかな?
EXP では,let 構文で束縛可能な変数の数が 1 つに限定されているが,この制
限が一般性を損うものではないことを証明せよ。また,λ抽象される
変数の数が1つに制限されているがこの制限も一般性を損うものではないことを
証明せよ。
薊野, Wed Dec 29 21:01:57 2004カリー化のことを言っているのだと思う。
きちんと数学的に証明するには関数空間とか持ちださなければいけないのかな。
naka-jima, Thu Dec 30 15:20:57 2004おまいらdeadline まであと1週間でつよ
2004, Sat Feb 19 19:49:50 2005↑ソースキボンヌ
もうだめぽ, Sun Feb 20 09:39:26 2005計算機システムの演習課題の話ではなかろうか
アヒャ, Mon Feb 21 00:14:08 2005ってこのスレだから違うか。吊ってきます
アヒャ, Mon Feb 21 00:15:32 2005