コンテンツにスキップ

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

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

ページのコンテンツが他言語でサポートされていません。
削除された内容 追加された内容
改善に向けて: 情報を追加する
63行目: 63行目:
* 「プログラミングはフォン・ノイマン・スタイルから解放されうるか?: 関数型プログラミング・スタイルとそのプログラム代数」の原語版である [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)
* 「プログラミングはフォン・ノイマン・スタイルから解放されうるか?: 関数型プログラミング・スタイルとそのプログラム代数」の原語版である [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)
* [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)

== 改名提案(関数型プログラミングへ) ==

「関数型言語」という項目名を「関数型プログラミング」へ改名することを提案します。この提案は、現時点では「関数型プログラミング」の記事が存在しないため改名提案の形になっていますが、その意味合いとしては「関数型言語」を「関数型プログラミング」へ統合するというものです。

# 現在の項目は、冒頭の定義部が「関数型言語は、関数型プログラミングを基本スタイルとするプログラミング言語の総称である」となっています。
# 『Haskell入門 関数型プログラミング言語の基礎と実践』の 3 ページにおいて、関数型プログラミングは「関数型プログラミングとは、引数に対して値が決まる、数学的な関数を中心に計算を表現するプログラミングスタイルを指します」と説明され、関数型プログラミング言語は「一般に関数型プログラミング言語と呼ぶときは、数学的な関数の利用を推奨しているプログラミング言語を指します」と説明され、関数型言語は「関数型プログラミング言語<sup>* 3 * 4</sup>という言葉を……」という注釈で「* 3 略して関数型言語とも。」と触れられています。

これらの二つの根拠から、関数型言語(関数型プログラミング言語)の概念を説明するためには、関数型プログラミングという概念を説明することが不可欠であると考えられ、前者が記事として存在しているにも関わらず後者が存在していないのは異常な状態です。この状態を解消するためには、「関数型プログラミング」の項目を別途作成する選択肢もありますが、そうすると「関数型言語」の項目を「関数型プログラミング」の項目へ統合する必要が出てくると思われ、また日本語版の「関数型言語」の項目が「関数型プログラミング」を説明する場を兼ねてきたこともあります。これらの事情があり、この場合は「関数型言語」を「関数型プログラミング」へ改名すべきだと考えます。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年2月26日 (金) 13:11 (UTC)

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

関数型言語の定義

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

改名提案(関数型プログラミングへ)

「関数型言語」という項目名を「関数型プログラミング」へ改名することを提案します。この提案は、現時点では「関数型プログラミング」の記事が存在しないため改名提案の形になっていますが、その意味合いとしては「関数型言語」を「関数型プログラミング」へ統合するというものです。

  1. 現在の項目は、冒頭の定義部が「関数型言語は、関数型プログラミングを基本スタイルとするプログラミング言語の総称である」となっています。
  2. 『Haskell入門 関数型プログラミング言語の基礎と実践』の 3 ページにおいて、関数型プログラミングは「関数型プログラミングとは、引数に対して値が決まる、数学的な関数を中心に計算を表現するプログラミングスタイルを指します」と説明され、関数型プログラミング言語は「一般に関数型プログラミング言語と呼ぶときは、数学的な関数の利用を推奨しているプログラミング言語を指します」と説明され、関数型言語は「関数型プログラミング言語* 3 * 4という言葉を……」という注釈で「* 3 略して関数型言語とも。」と触れられています。

これらの二つの根拠から、関数型言語(関数型プログラミング言語)の概念を説明するためには、関数型プログラミングという概念を説明することが不可欠であると考えられ、前者が記事として存在しているにも関わらず後者が存在していないのは異常な状態です。この状態を解消するためには、「関数型プログラミング」の項目を別途作成する選択肢もありますが、そうすると「関数型言語」の項目を「関数型プログラミング」の項目へ統合する必要が出てくると思われ、また日本語版の「関数型言語」の項目が「関数型プログラミング」を説明する場を兼ねてきたこともあります。これらの事情があり、この場合は「関数型言語」を「関数型プログラミング」へ改名すべきだと考えます。--Hexirp会話2021年2月26日 (金) 13:11 (UTC)[返信]