ノート:関数型プログラミング
表示
(ノート:関数型言語から転送)
この記事は2021年2月24日に削除依頼の審議対象になりました。議論の結果、即時存続となりました。 |
過去ログ一覧 |
---|
|
歴史の節での見出しをどうすればよいのか
[編集]歴史の節を執筆しています。その中で、いくつかの時代に分けて見出しを付けたいのですが、そのやり方に悩んでいます。現在は 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)
- 「本間, 類地 & 逢坂 2017, p. 3」の所だけなら技術評論社のページのサンプルで確認できます。「を推奨している」から「に準拠している」への変更については青子守歌さんに同意します。やはり、「推奨」と「準拠」ではニュアンスが違いすぎて許容されないと思います。なお、余談ですが、当時の私は「関数型プログラミングは数学的な関数を利用するスタイルである」と「数学的な関数を利用するのを推奨するのが関数型プログラミング言語である」という旨の記述を組み合わせて「関数型プログラミング言語は、関数型プログラミングを推奨しているプログラミング言語である」というようにしたのだと思います。 -- Hexirp(会話) 2021年12月31日 (金) 04:04 (UTC)
- > 関数
func
は参照透過であり再帰を用いており、その再帰関数は二項演算子-
を引数に取っている高階関数になっている。-
は第一級関数と同等である。再帰での0
とそれ以外の分岐および停止性問題はパターンマッチングで解決されている - という記述が追加されていますが、funcの引数に渡しているのは
n - 1
であり関数でないので明らかな誤りですね。「停止性問題」も何の脈絡もない言葉のため、正確性に問題があるというレベルではなく、もはやワードサラダの状態です。差し戻しに賛成します。--Fumiexcel (会話|履歴|メール) 2022年1月5日 (水) 06:17 (UTC)- こちらの所感として、本稿は取り合えず簡潔に書いて置いたままで、後は時間が取れなくて放置されていると思ったので、英語版の構成に沿うように加筆した次第です。この記事にこだわりがあったならば失礼しました。こちらの誤記ですが「再帰での
0
とそれ以外の分岐および停止はパターンマッチングで解決されている」と書くつもりが、”停止”へのリンクボタンで停止性問題が出たので、つられて完全に錯誤して書いてしまいました。 - ただ一つ驚いたのですが、そちらの「funcの引数に渡しているのは
n - 1
であり関数でないので明らかな誤り」というのは、どういうつもりで書いたのでしょうか? 二項演算子-
は、引数二つの関数と同義であり、単に演算子と関数という呼称および記法の違いだけで本質的には同じもののはずですが。n - 1
はminus(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)