トップページ > プログラム > 2015年11月06日 > cewDcmBk

書き込み順位&時間帯一覧

28 位/203 ID中時間01234567891011121314151617181920212223Total
書き込み数0000001000001001000000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net

書き込みレス一覧

C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
698 :デフォルトの名無しさん[sage]:2015/11/06(金) 06:51:13.27 ID:cewDcmBk
C言語は単に記述の自由度が高いというだけでプログラム言語としての能力はそれほど高い方ではない。
適用範囲の広さと言語の能力は別の話。
最近の流行は関数型言語に見られるように、問題をアルゴリズム(手続き)に分解することなく直接記述
して結果を得るプログラミングパラダイム(手法、アイデア)が注目されている。
C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
703 :デフォルトの名無しさん[sage]:2015/11/06(金) 12:29:19.61 ID:cewDcmBk
>>701
一例として、最近のトレンドで言えば純粋関数型言語とまでは言わないまでも、関数を第一級オブジェクトとして扱う能力を
言語仕様としてサポートするようにしているものが多い。
簡単に言えば関数をオブジェクト変数として扱う能力のことで、関数そのものをコーディング時点ではなくプログラムの
実行時に動的に生成したり、変数に代入したりする能力のこと。
うまく使えば非常に柔軟なプログラミングができる。
JavaやC#ですら最新版ではラムダ式をサポートして関数型プログラミングを部分的にサポートしている。
ライブラリなどで後から付与できる能力ではない。
CやC++は言語仕様としては関数ポインタを使えばある程度はカバーできるが、実行時に生成することまでは不可能で
能力的にはこれらの言語に一歩劣る(第二級オブジェクトと呼ばれたりする)。

第一級オブジェクト
https://ja.wikipedia.org/wiki/%E7%AC%AC%E4%B8%80%E7%B4%9A%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88
C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
714 :デフォルトの名無しさん[sage]:2015/11/06(金) 15:48:03.22 ID:cewDcmBk
>>709
関数の動的な生成というのは動的な型宣言のことではない。
関数が特定の型を持つのではなく、関数そのものがオブジェクトとして単独で存在し得ることを言う
(C++のインスタンス関数とは意味が違う)。
関数型言語においては、関数の定義内容そのものが意味を持つのであってC/C++の関数では必須である
関数名さえも必要としない。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。