コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

「ノート:関数型プログラミング」の版間の差分

ページのコンテンツが他言語でサポートされていません。
削除された内容 追加された内容
Dr jimmy (会話 | 投稿記録)
改善に向けて: 情報を追加する
(同じ利用者による、間の4版が非表示)
39行目: 39行目:


*{{終了}} 提案者がブロックされており、反対意見のみであるため、終了といたします。--[[利用者:Dr jimmy|Dr.Jimmy]]([[利用者‐会話:Dr jimmy|会話]]) 2019年10月6日 (日) 03:16 (UTC)
*{{終了}} 提案者がブロックされており、反対意見のみであるため、終了といたします。--[[利用者:Dr jimmy|Dr.Jimmy]]([[利用者‐会話:Dr jimmy|会話]]) 2019年10月6日 (日) 03:16 (UTC)

== 改善に向けて ==

私は、個人的な経験を根拠にして、現在は項目名が関数型言語であるのを関数型プログラミングへ改名すべきだと考えていますが、まだ調査を行っていないため改名提案を行える段階にありません。そのため、ここで調査した内容を記録し、今後の改名提案のための根拠を積み重ねたいと思います。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月25日 (木) 14:25 (UTC)

* 『Haskell入門 関数型プログラミング言語の基礎と実践』の 3 ページでは、関数型プログラミングが「関数型プログラミングとは、引数に対して値が決まる、数学的な関数を中心に計算を表現するプログラミングスタイルを指します」と説明され、関数型プログラミング言語が「一般に関数型プログラミング言語と呼ぶときは、数学的な関数の利用を推奨しているプログラミング言語を指します」と説明され、関数型言語が「関数型プログラミング言語<sup>* 3 * 4</sup>という言葉を……」という注釈で「* 3 略して関数型言語とも。」と触れられています。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月25日 (木) 14:25 (UTC)
* 2021年02月25日の時点において、引用符を付けることによって完全一致で Google 検索した結果は、「関数型」が約 411,000 件になり、「関数型プログラミング」が約 117,000 件になり、「関数型プログラミング言語」が約 65,600 件になり、「関数型言語」が約 146,000 件になりました。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月25日 (木) 14:25 (UTC)
* 2021年02月25日の時点において、[[命令型言語]]は[[命令型プログラミング]]への転送になっています。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月25日 (木) 14:53 (UTC)

「関数型言語」は「関数型プログラミング言語」の略です。そして、関数型プログラミング言語は関数型プログラミングを前提とした概念であり、これらを別の項目に分ける必要はないはずです。よって、「関数型言語」から「関数型プログラミング言語」への改名は同義語であるため問題なく、「関数型プログラミング言語」から「関数型プログラミング」への改名はより一般的な概念を説明した記事への統合と見なせるため問題ないはずです。ゆえに、「関数型言語」から「関数型プログラミング」への改名は、知名度などを考えなければ、それを妨げる理由はないはずです。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月25日 (木) 14:53 (UTC)

* 2021年02月26日の時点において、英語版ウィキペディアでは [[:en:functional language|functional language]] と [[:en:functional programming language|functional programming language]] は [[:en:functional programming|functional programming]] へのリダイレクトになっています。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月26日 (金) 06:49 (UTC)
* [[Special:Redirect/revision/82020176|2021年02月26日の時点においての内容]]で、出典として使われている文書を調査しました。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月26日 (金) 06:49 (UTC)
** [http://www.cs.nott.ac.uk/~pszgmh/faq.html Frequently Asked Questions for comp.lang.functional] ([https://web.archive.org/web/20210224135129/http://www.cs.nott.ac.uk/~pszgmh/faq.html 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|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月26日 (金) 06:49 (UTC)
** [http://nous.web.nitech.ac.jp/individual/inuzuka/lecture/PLT/PLT07/PLT1.pdf プログラミング言語論 第1回 イントロダクション] ([https://web.archive.org/web/20191107140451/http://nous.web.nitech.ac.jp/individual/inuzuka/lecture/PLT/PLT07/PLT1.pdf archive]) では、「関数モデルに基づくプログラミング言語」が「関数型言語」であると読み取れる内容になっています。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月26日 (金) 06:49 (UTC)
** [http://nous.web.nitech.ac.jp/individual/inuzuka/lecture/PLT/PLT07/PLT7.ppt プログラミング言語論 第7回 関数型言語] ([https://web.archive.org/web/20191107140450/http://nous.web.nitech.ac.jp/individual/inuzuka/lecture/PLT/PLT07/PLT7.ppt archive]) では、用語の定義はありませんでしたが、「関数型プログラミング言語」と「関数型言語」が同一視されている内容になっています。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月26日 (金) 06:49 (UTC)
** [https://msdn.microsoft.com/ja-jp/library/dd233229(v=vs.120).aspx 関数 (F#) | Microsoft Docs] ([https://web.archive.org/web/20181026222827/https://msdn.microsoft.com/ja-jp/library/dd233229(v=vs.120).aspx archive]) では、「関数型言語」の定義を見つけることは出来ませんでした。「関数型言語」という言葉は現れず、「関数型プログラミング」と「関数型プログラミング言語」という言葉が現れるのみです。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月26日 (金) 06:49 (UTC)
** 「ANSI C/C++辞典」は、まだアクセスすることが出来ていません。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月26日 (金) 06:49 (UTC)
** [https://arxiv.org/pdf/cs/0509027.pdf Haskell's overlooked object system] ([https://web.archive.org/web/20201112011848/https://arxiv.org/pdf/cs/0509027.pdf archive]) において、「関数型言語」の定義を見つけることは出来ませんでした。文章の中で検索した結果、 "functional" は 55 個見つかり、 "functional programming" は 14 個見つかり、 "functional programming language" は 1 個見つかり、 "functional language" は 3 個見つかりました。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月26日 (金) 06:49 (UTC)
** 「プログラミングはフォン・ノイマン・スタイルから解放されうるか?: 関数型プログラミング・スタイルとそのプログラム代数」は、関数型プログラミングという概念が最初に現れた文章であるという記述が見つかり、重要な文書であると思われるものの、まだアクセスすることが出来ていません。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月26日 (金) 06:49 (UTC)
* 2021年02月26日の時点において、[[オブジェクト指向言語]]は[[オブジェクト指向プログラミング]]への転送になっています。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月26日 (金) 06:49 (UTC)
* "functional programming" は「関数型プログラミング」に、 "functional programming language" は「関数型プログラミング言語」に、 "functional language" は「関数型言語」に、それぞれ対応すると思っても良いでしょう。よって、英語でのこれらの言葉の調査は日本語においてもそのまま参考にすることが出来ます。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月26日 (金) 06:49 (UTC)
* 「プログラミングはフォン・ノイマン・スタイルから解放されうるか?: 関数型プログラミング・スタイルとそのプログラム代数」の原語版である [https://dl.acm.org/doi/pdf/10.1145/359576.359579 Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs] ([https://web.archive.org/web/20210210065952/https://dl.acm.org/doi/pdf/10.1145/359576.359579 archive]) では、 "functional programming" は 13 個ありましたが、 "functional programming language" と "functional language" はありませんでした。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月26日 (金) 12:17 (UTC)
* [http://www.ipsj.or.jp/07editj/promenade/4604.pdf 関数プログラミングの妙味] ([https://web.archive.org/web/20201109020137/http://www.ipsj.or.jp/07editj/promenade/4604.pdf archive]) では、 "Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs" が関数型プログラミングの始まりだとされています。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月26日 (金) 12:17 (UTC)

2021年2月26日 (金) 12:17時点における版

関数型言語の定義

  • 「関数型言語(かんすうがたげんご)は、ラムダ計算の概念をプログラミング言語として体現したもの。」とありますが、広く受け入れられた定義とは言えないように思います。出典を明記するか、できなければ削除するべきではないでしょうか。-- Lalx 2007年8月30日 (木) 06:59 (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)[返信]

反対 - 改名提案の体をなしていません。参考までに、

--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)[返信]

改善に向けて

私は、個人的な経験を根拠にして、現在は項目名が関数型言語であるのを関数型プログラミングへ改名すべきだと考えていますが、まだ調査を行っていないため改名提案を行える段階にありません。そのため、ここで調査した内容を記録し、今後の改名提案のための根拠を積み重ねたいと思います。--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)[返信]