ノート:関数型プログラミング/過去ログ1
このページは過去の議論を保存している過去ログページです。編集しないでください。新たな議論や話題は、ノート:関数型プログラミングで行ってください。 |
関数型言語の定義
[編集]- 「関数型言語(かんすうがたげんご)は、ラムダ計算の概念をプログラミング言語として体現したもの。」とありますが、広く受け入れられた定義とは言えないように思います。出典を明記するか、できなければ削除するべきではないでしょうか。-- Lalx 2007年8月30日 (木) 06:59 (UTC)
- とりあえずご指摘の部分だけ英語版から出典をパクってきました。--まじかんと 2008年7月5日 (土) 04:31 (UTC)
Erlang は非純粋?
[編集]- Erlang が非純粋関数型言語に分類されていますがいいのでしょうか。「純粋関数型言語」の節の定義に沿っている気がしますが。でも入出力の関数はたくさんありますし。。。114.163.93.99 2011年2月5日 (土) 09:15 (UTC)
- Erlang を強い静的型付けの純粋関数型言語に移して、入出力関数について注を付けるのはどうでしょうか。(失礼、著名し忘れたので追記しました)--125.174.173.86 2011年6月26日 (日) 07:02 (UTC)
「関数型プログラミング」の定義
[編集]「ここでの「関数」とは、数学でいう「関数」であり、手続き型プログラミングなどにおける「関数」ではないことをまず注意する。」 数学の関数とは対象から対象への射ですから手続き型プログラミングの関数は立派な数学上の関数です。
「典型的には原則としては副作用がないものであることが挙げられる。」 ・ラムダ式の理論において環境とラムダ式の相互作用によって環境が変化していくことを規定しています。 これは副作用に他ならず、本叙述と一致しません。ラムダ式こそが関数型言語の関数ではないでしょうか? ・コンピュータプログラムは関数の一種という比喩がこの後書かれていますがプログラムの実行の結果は副作用が伴うのが一般的であり矛盾します。 ・「典型的には原則としては」ということは副作用は例外的に認められるのでしょうか? --114.179.23.64 2014年5月23日 (金) 05:05 (UTC)
「関数型プログラミング」への改名提案
[編集]よろしくお願いします。--Goldensundown2(会話) 2019年9月5日 (木) 06:00 (UTC)
- Cinii 全文検索では、関数型言語 978ヒット、関数型プログラミング 248ヒット
- Google Scholar では、関数型言語 1540ヒット、関数型プログラミング 408ヒット
--Takabeg(会話) 2019年9月9日 (月) 12:51 (UTC)
御提示頂いた検索データを拝見しましたが、この場合はヒット数の多さは全く関係ありません。 関数型言語と関数型プログラミングでは意味自体が異なるからです。前者はプログラミング言語を指し、後者はプログラミング理論を指してます。英語など他の外国語版は全部programmingないしそれに相当する各国語になってます。中国語も「編程」でありこれはプログラミングの意味です。つまりプログラミング理論です。それなのに日本版だけ関数型プログラミング言語の方を指すページ名になっており、これは修正した方がいい案件だと考えます。--Goldensundown2(会話) 2019年9月9日 (月) 14:28 (UTC)
反対 - 他言語版の状況は参考程度に扱うべきもので、日本語版はまず第一に日本語における状況を反映するものです。また、言語がまず規定され、その上の応用としてプログラミングがあるのですから、「―言語」の記事が無く「―プログラミング」の記事のみが存在するのはいびつな構造であると思います。--Extrahitz(会話) 2019年9月10日 (火) 13:48 (UTC)
最近は自分が編集してしまっておりますが、それ以前までの[1]のページを始めとする全履歴においても関数型プログラミングについての説明が冒頭と前半部に置かれており、それが中心になってます。関数型言語の説明は公開言語一覧として末尾に置かれてるだけです。日本語における状況を反映すればこそ「関数型プログラミング」の方が正確であるという結論になります。 なお「言語がまず規定され、その上の応用としてプログラミングがあるのですから~」は明らかに事実と異なります。 僭越ながらそちらの履歴を拝見しましたが、興味分野外の方が今回だけ一体どういうつもりでこのような御意見を書き込まれてるのか失礼ながら理解に苦しみます。--Goldensundown2(会話) 2019年9月10日 (火) 16:36 (UTC)
- WP:CIRCULARにありますようにウィキペディアの記述は典拠にはなりません。典拠の扱いの基本や、また言語が規定されその上にプログラミングがあるという基本事実についての認識がおかしいのですから、そのことを指摘するのは当然のことです。いまのところ私の執筆している分野は人文系が主ですが、計算機科学について学んでいない訳ではありません。(誤字修正)--Extrahitz(会話) 2019年9月10日 (火) 21:34 (UTC)
- 終了 提案者がブロックされており、反対意見のみであるため、終了といたします。--Dr.Jimmy(会話) 2019年10月6日 (日) 03:16 (UTC)
改善に向けて
[編集]私は、個人的な経験を根拠にして、現在は項目名が関数型言語であるのを関数型プログラミングへ改名すべきだと考えていますが、まだ調査を行っていないため改名提案を行える段階にありません。そのため、ここで調査した内容を記録し、今後の改名提案のための根拠を積み重ねたいと思います。--Hexirp(会話) 2021年2月25日 (木) 14:25 (UTC)
- 『Haskell入門 関数型プログラミング言語の基礎と実践』の 3 ページでは、関数型プログラミングが「関数型プログラミングとは、引数に対して値が決まる、数学的な関数を中心に計算を表現するプログラミングスタイルを指します」と説明され、関数型プログラミング言語が「一般に関数型プログラミング言語と呼ぶときは、数学的な関数の利用を推奨しているプログラミング言語を指します」と説明され、関数型言語が「関数型プログラミング言語* 3 * 4という言葉を……」という注釈で「* 3 略して関数型言語とも。」と触れられています。--Hexirp(会話) 2021年2月25日 (木) 14:25 (UTC)
- 2021年02月25日の時点において、引用符を付けることによって完全一致で Google 検索した結果は、「関数型」が約 411,000 件になり、「関数型プログラミング」が約 117,000 件になり、「関数型プログラミング言語」が約 65,600 件になり、「関数型言語」が約 146,000 件になりました。--Hexirp(会話) 2021年2月25日 (木) 14:25 (UTC)
- 2021年02月25日の時点において、命令型言語は命令型プログラミングへの転送になっています。--Hexirp(会話) 2021年2月25日 (木) 14:53 (UTC)
「関数型言語」は「関数型プログラミング言語」の略です。そして、関数型プログラミング言語は関数型プログラミングを前提とした概念であり、これらを別の項目に分ける必要はないはずです。よって、「関数型言語」から「関数型プログラミング言語」への改名は同義語であるため問題なく、「関数型プログラミング言語」から「関数型プログラミング」への改名はより一般的な概念を説明した記事への統合と見なせるため問題ないはずです。ゆえに、「関数型言語」から「関数型プログラミング」への改名は、知名度などを考えなければ、それを妨げる理由はないはずです。--Hexirp(会話) 2021年2月25日 (木) 14:53 (UTC)
- 2021年02月26日の時点において、英語版ウィキペディアでは functional language と functional programming language は functional programming へのリダイレクトになっています。--Hexirp(会話) 2021年2月26日 (金) 06:49 (UTC)
- 2021年02月26日の時点においての内容で、出典として使われている文書を調査しました。--Hexirp(会話) 2021年2月26日 (金) 06:49 (UTC)
- Frequently Asked Questions for comp.lang.functional (archive) では、 "functional programming" が "Functional programming is a style of programming that emphasizes the evaluation of expressions, rather than execution of commands. The expressions in these language are formed by using functions to combine basic values." と説明され、続けて "functional language" が "A functional language is a language that supports and encourages programming in a functional style." として説明されています。ここでの "programming in a functional style" は "functional programming" のことで良いでしょうから、この文書では、関数型言語は「関数型プログラミングをサポートしており。さらに積極的に勧めているような言語」と説明されていることになります。--Hexirp(会話) 2021年2月26日 (金) 06:49 (UTC)
- プログラミング言語論 第1回 イントロダクション (archive) では、「関数モデルに基づくプログラミング言語」が「関数型言語」であると読み取れる内容になっています。--Hexirp(会話) 2021年2月26日 (金) 06:49 (UTC)
- プログラミング言語論 第7回 関数型言語 (archive) では、用語の定義はありませんでしたが、「関数型プログラミング言語」と「関数型言語」が同一視されている内容になっています。--Hexirp(会話) 2021年2月26日 (金) 06:49 (UTC)
- 関数 (F#) | Microsoft Docs (archive) では、「関数型言語」の定義を見つけることは出来ませんでした。「関数型言語」という言葉は現れず、「関数型プログラミング」と「関数型プログラミング言語」という言葉が現れるのみです。--Hexirp(会話) 2021年2月26日 (金) 06:49 (UTC)
- 「ANSI C/C++辞典」は、まだアクセスすることが出来ていません。--Hexirp(会話) 2021年2月26日 (金) 06:49 (UTC)
- Haskell's overlooked object system (archive) において、「関数型言語」の定義を見つけることは出来ませんでした。文章の中で検索した結果、 "functional" は 55 個見つかり、 "functional programming" は 14 個見つかり、 "functional programming language" は 1 個見つかり、 "functional language" は 3 個見つかりました。--Hexirp(会話) 2021年2月26日 (金) 06:49 (UTC)
- 「プログラミングはフォン・ノイマン・スタイルから解放されうるか?: 関数型プログラミング・スタイルとそのプログラム代数」は、関数型プログラミングという概念が最初に現れた文章であるという記述が見つかり、重要な文書であると思われるものの、まだアクセスすることが出来ていません。--Hexirp(会話) 2021年2月26日 (金) 06:49 (UTC)
- 2021年02月26日の時点において、オブジェクト指向言語はオブジェクト指向プログラミングへの転送になっています。--Hexirp(会話) 2021年2月26日 (金) 06:49 (UTC)
- "functional programming" は「関数型プログラミング」に、 "functional programming language" は「関数型プログラミング言語」に、 "functional language" は「関数型言語」に、それぞれ対応すると思っても良いでしょう。よって、英語でのこれらの言葉の調査は日本語においてもそのまま参考にすることが出来ます。--Hexirp(会話) 2021年2月26日 (金) 06:49 (UTC)
- 「プログラミングはフォン・ノイマン・スタイルから解放されうるか?: 関数型プログラミング・スタイルとそのプログラム代数」の原語版である Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs (archive) では、 "functional programming" は 13 個ありましたが、 "functional programming language" と "functional language" はありませんでした。--Hexirp(会話) 2021年2月26日 (金) 12:17 (UTC)
- 関数プログラミングの妙味 (archive) では、 "Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs" が関数型プログラミングの始まりだとされています。--Hexirp(会話) 2021年2月26日 (金) 12:17 (UTC)
改名提案(関数型プログラミングへ)
[編集]「関数型言語」という項目名を「関数型プログラミング」へ改名することを提案します。この提案は、現時点では「関数型プログラミング」の記事が存在しないため改名提案の形になっていますが、その意味合いとしては「関数型言語」を「関数型プログラミング」へ統合するというものです。
- 現在の項目は、冒頭の定義部が「関数型言語は、関数型プログラミングを基本スタイルとするプログラミング言語の総称である」となっています。
- 『Haskell入門 関数型プログラミング言語の基礎と実践』の 3 ページにおいて、関数型プログラミングは「関数型プログラミングとは、引数に対して値が決まる、数学的な関数を中心に計算を表現するプログラミングスタイルを指します」と説明され、関数型プログラミング言語は「一般に関数型プログラミング言語と呼ぶときは、数学的な関数の利用を推奨しているプログラミング言語を指します」と説明され、関数型言語は「関数型プログラミング言語* 3 * 4という言葉を……」という注釈で「* 3 略して関数型言語とも。」と触れられています。
これらの二つの根拠から、関数型言語(関数型プログラミング言語)の概念を説明するためには、関数型プログラミングという概念を説明することが不可欠であると考えられ、前者が記事として存在しているにも関わらず後者が存在していないのは異常な状態です。この状態を解消するためには、「関数型プログラミング」の項目を別途作成する選択肢もありますが、そうすると「関数型言語」の項目を「関数型プログラミング」の項目へ統合する必要が出てくると思われ、また日本語版の「関数型言語」の項目が「関数型プログラミング」を説明する場を兼ねてきたこともあります。これらの事情があり、この場合は「関数型言語」を「関数型プログラミング」へ改名すべきだと考えます。--Hexirp(会話) 2021年2月26日 (金) 13:11 (UTC)
一週間以上待っても反対意見がなかったため、改名を行いたいと思います。--Hexirp(会話) 2021年3月8日 (月) 12:13 (UTC)
関数型プログラミングの履歴に複数の版があったため、移動依頼を提出しました(Special:Diff/82249668/82258083)。--Hexirp(会話) 2021年3月8日 (月) 12:32 (UTC)
えのきだもつさんにより移動が行われました。--Hexirp(会話) 2021年3月9日 (火) 07:06 (UTC)