[過去ログ] 「数学」をプログラミングするには (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
74
(3): デフォルトの名無しさん [sage] 2024/03/23(土) 15:36:22.16 ID:O64Y227M(3/5) AAS
>>73
73(1): デフォルトの名無しさん [] 2024/03/23(土) 14:44:44.84 ID:g/HfMmmn(3/9) AAS
>>72
それは実装上の効率化のための操作で、本当の写像ではない。本当の写像は配列から配列を作る。
C#で言えばSelectしただけでは写像にならず、ToArrayしないと写像にならない。
配列から配列なんて嘘つきだな
例えば写像の入力を数学でもよくある自然数とする
これは配列では表現できない
イテレータならば表現できる
出力も同様で配列は不可能だがイテレータなら可能
76
(1): デフォルトの名無しさん [] 2024/03/23(土) 16:43:39.42 ID:g/HfMmmn(4/9) AAS
>>74
自然数は要素数が無限大の配列だが、コンピュータではメモリが有限なので表現できないだけ。
イタレータによる遅延評価は問題を先送りしただけで、本当の写像である配列を作ろうとすると
メモリが途中で尽きて作れない。
84
(1): デフォルトの名無しさん [] 2024/03/23(土) 22:23:29.86 ID:g/HfMmmn(7/9) AAS
>>83
83(2): デフォルトの名無しさん [sage] 2024/03/23(土) 21:27:18.93 ID:u0/iUo5p(1) AAS
>>82
あんさんボケとるな
ここまで読んで反復子(iterator)が写像(map)と書いているのは君しかいない
他の人たちは以下を正しく理解して書込みしている

>>72
>> だからmapの入力も出力もイテレータが使われる
>>74はごっちゃにしているようだが。

反復子を使っても遅延評価をしなければ、mapを多段に使った場合の効率は良くならない。
例えば、C++ STLのtransformがそう。

>>70
70(3): デフォルトの名無しさん [] 2024/03/23(土) 12:47:39.65 ID:g/HfMmmn(2/9) AAS
>>69
機械語に識別子はないからできないだろ。Cでは長さnの配列aの各要素に関数fを適用した結果を
配列bに格納する関数 map(f, a, n, b) を簡単に自作できる。
のような配列のmap関数でも、引数fとして複数の関数の合成関数のポインタを渡せば、
効率は良くなる。あるいは、引数fとして関数ポインタの配列を受け入れるようなmap関数を
書いても良い。
85: デフォルトの名無しさん [] 2024/03/23(土) 22:27:51.62 ID:g/HfMmmn(8/9) AAS
>>83
>>74はごっちゃにしているようだが。

反復子を使っても遅延評価をしなければ、mapを多段に使った場合の効率は良くならない。
例えば、C++ STLのtransformがそう。

>>70のような配列のmap関数でも、引数fとして複数の関数の合成関数のポインタを渡せば、
効率は良くなる。あるいは、引数fとして関数ポインタの配列を受け入れるようなmap関数を
書いても良い。

そもそもCでmap関数を書けるかという話だから、書けるという回答で何の問題ないだろ。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s