スレタイ以外の言語もok
前スレ
次世代言語11[Rust Swift TypeScript Dart]
https://mevius.5ch.net/test/read.cgi/tech/1528037607/
探検
次世代言語12 Go Rust Swift Kotlin TypeScript
■ このスレッドは過去ログ倉庫に格納されています
2018/07/04(水) 09:38:15.76ID:qg2ggPtj
461デフォルトの名無しさん
2018/07/29(日) 14:23:03.09ID:++hEM/7+ 冗長なコードを美徳として可読性の高さを謳っているのは
Python だけじゃなく、同じ手続き型言語の Cobol がある
たとえば >>455 を改変してみると:
見当違いの批判をされても業務アプリ開発の分野で
(Cobol が)圧倒的に支持されてるのは変わらないから
ドカタが嫉妬してるだけに見えるんだよね
仮にこんな感じでコボラが主張したとしても、なんら違和感がない
つまり現在に復権したコボラの正統後継者がフェイトニスタってこと
Python だけじゃなく、同じ手続き型言語の Cobol がある
たとえば >>455 を改変してみると:
見当違いの批判をされても業務アプリ開発の分野で
(Cobol が)圧倒的に支持されてるのは変わらないから
ドカタが嫉妬してるだけに見えるんだよね
仮にこんな感じでコボラが主張したとしても、なんら違和感がない
つまり現在に復権したコボラの正統後継者がフェイトニスタってこと
462デフォルトの名無しさん
2018/07/29(日) 14:25:24.26ID:gNiJKIOF 【悲報】パイソニップはウンポコペチプー以下のコボラーだった
463デフォルトの名無しさん
2018/07/29(日) 14:26:32.00ID:++hEM/7+465デフォルトの名無しさん
2018/07/29(日) 14:37:36.71ID:gNiJKIOF ワイはPB級だけど質問ある?
466デフォルトの名無しさん
2018/07/29(日) 15:01:45.76ID:zv0scSBW >>458
aに副作用生じさせといてなんとも思わんお前がカス。
aに副作用生じさせといてなんとも思わんお前がカス。
467デフォルトの名無しさん
2018/07/29(日) 15:04:42.51ID:gNiJKIOF468デフォルトの名無しさん
2018/07/29(日) 15:06:36.51ID:CvskUGg1 メソッドチェーンってそんないいもんかね?
可読性がいいとも思えないけど
可読性がいいとも思えないけど
469デフォルトの名無しさん
2018/07/29(日) 15:10:48.78ID:gNiJKIOF 糞糞糞糞包糞糞と糞関数ラップワンライナーおじさんのパイソニップ草w
470デフォルトの名無しさん
2018/07/29(日) 15:14:54.71ID:zv0scSBW これはやばい。。
やっぱシンタックス厨ってのは害悪でしかないな。
やっぱシンタックス厨ってのは害悪でしかないな。
471デフォルトの名無しさん
2018/07/29(日) 15:21:18.64ID:fLtN8lsN メソッドと関数が混ざって汚いと常々思ってた
472デフォルトの名無しさん
2018/07/29(日) 15:22:51.12ID:zv0scSBW var a = new Array(4, 11, 2, 10, 3, 1);
var b = a.sort();
//var b = a.sort().reverse();
これでaの結果が異なるってマジクソだろ。
var b = a.sort();
//var b = a.sort().reverse();
これでaの結果が異なるってマジクソだろ。
473デフォルトの名無しさん
2018/07/29(日) 15:28:17.30ID:gNiJKIOF お得意の糞糞糞糞包みで糞してみろカスwwwwwwwwwwwwww
474デフォルトの名無しさん
2018/07/29(日) 15:34:16.27ID:J+11rz8t >>467
バカすぎるので晒しとこw
バカすぎるので晒しとこw
475デフォルトの名無しさん
2018/07/29(日) 15:40:29.23ID:J+11rz8t 内包表記は数学由来だから文系のコンプレックスを刺激してしまうんだねw
476デフォルトの名無しさん
2018/07/29(日) 15:49:55.75ID:gNiJKIOF 副作用が糞
メソッドチェーンはフツウに良い
パイソニップ≒コボラー
これが結論
メソッドチェーンはフツウに良い
パイソニップ≒コボラー
これが結論
477デフォルトの名無しさん
2018/07/29(日) 15:57:59.37ID:J+11rz8t478デフォルトの名無しさん
2018/07/29(日) 16:09:52.04ID:EbPqex13 メソッドチェーンがぱっとわかりやすいのも分かるが
リスト内包はリスト内包で数学やってりゃわかる可読性がある
リスト内包がわからんってわめき散らすの無知晒してるだけだからやめた方がいい
それはそれとしてPythonはもっと関数を横に繋げられるようにしてくれ
Elixirのパイプ演算子みたいな感じでさあ
リスト内包はリスト内包で数学やってりゃわかる可読性がある
リスト内包がわからんってわめき散らすの無知晒してるだけだからやめた方がいい
それはそれとしてPythonはもっと関数を横に繋げられるようにしてくれ
Elixirのパイプ演算子みたいな感じでさあ
479デフォルトの名無しさん
2018/07/29(日) 16:10:48.21ID:EbPqex13 というかリスト内包とメソッドチェーン比較してる時点でただの無知だよね
480デフォルトの名無しさん
2018/07/29(日) 16:21:10.67ID:ikK7Yp3X 数学wwwwwwwwwwwwwwww
すwwwwwwすううっがくwwwwww
あれwwwwすうがくやったんけwwwww
すwwwwwwすううっがくwwwwww
あれwwwwすうがくやったんけwwwww
481デフォルトの名無しさん
2018/07/29(日) 16:33:06.78ID:/TApOH16 A = {2x + 5 | x ∈ N}
とかな。見たことあるだろ?
リスト内包はこの延長
こんなんもわからんで批判してたんかい
とかな。見たことあるだろ?
リスト内包はこの延長
こんなんもわからんで批判してたんかい
482デフォルトの名無しさん
2018/07/29(日) 16:48:00.78ID:gNiJKIOF 低学歴パイソニップ、Pythonで数学マウントを取る
483デフォルトの名無しさん
2018/07/29(日) 16:49:43.45ID:/TApOH16 低学歴なのに数学でマウント取る……?
484デフォルトの名無しさん
2018/07/29(日) 17:33:47.60ID:yV15yOGY あーもう
どこの板にもこういうキチガイ湧くんだよな
煽りカスでどっちにも有益にならないから放置安定よ
どこの板にもこういうキチガイ湧くんだよな
煽りカスでどっちにも有益にならないから放置安定よ
485デフォルトの名無しさん
2018/07/29(日) 19:13:52.55ID:Df5F+309 物欲はなくて支配欲だけがあるのが問題なんだろう
買いたい物がない人間が一体何のために利益を出すのか
益が少ない者を見下したり支配したりするためでしょ
買いたい物がない人間が一体何のために利益を出すのか
益が少ない者を見下したり支配したりするためでしょ
486デフォルトの名無しさん
2018/07/29(日) 19:22:52.13ID:eTX7oAdY お前ら次世代言語の話をしなさいよ
俺はRockstarをお勧めするぞ
プログラムであり自己表現でもある
俺はRockstarをお勧めするぞ
プログラムであり自己表現でもある
487デフォルトの名無しさん
2018/07/29(日) 19:42:52.49ID:eDBn37vJ 言語の内容は一切しらないが
名前が商品っぽくてギーク臭がしないから、その言語ははやらないだろう
名前が商品っぽくてギーク臭がしないから、その言語ははやらないだろう
488デフォルトの名無しさん
2018/07/29(日) 19:44:04.42ID:eDBn37vJ とおもったらネタ言語だった
489デフォルトの名無しさん
2018/07/29(日) 19:59:49.21ID:zeY5m7dD だからPonylangが真の次世代だっつってんだろ
490デフォルトの名無しさん
2018/07/29(日) 21:19:44.69ID:jHvVDWmn Haskellのエラーモナドかましたリスト内包表記は難解すぎる
491デフォルトの名無しさん
2018/07/29(日) 22:06:47.14ID:GVyD60rv 多言語を批判するならお互いが同じ例題でソース書き比べたらええやん
ずっとごちゃごちゃ言ってるやつってソースもごちゃごちゃしてそうw
ずっとごちゃごちゃ言ってるやつってソースもごちゃごちゃしてそうw
492デフォルトの名無しさん
2018/07/29(日) 22:09:18.66ID:9WGuah8C 言い出しっぺがまずやってみせて
493デフォルトの名無しさん
2018/07/29(日) 22:14:55.65ID:GVyD60rv >>492
多言語を批判なんてしてないから言い出しっぺではない傍観者だ
多言語を批判なんてしてないから言い出しっぺではない傍観者だ
494デフォルトの名無しさん
2018/07/29(日) 22:24:44.41ID:9WGuah8C いや君の提案でしょ?
495デフォルトの名無しさん
2018/07/29(日) 22:25:11.28ID:uE0dE1bw >>491
書き比べはそれはそれでもめるんよ
言語ごとの推し抽象化手法(有り体に言えば得意分野)が違うから同じの書かせつつ公平にはしにくいし
オーバーラップする領域ではライブラリーのAPI叩くだけのHelloWorldレベルのコード比較に終始してしまう
書き比べはそれはそれでもめるんよ
言語ごとの推し抽象化手法(有り体に言えば得意分野)が違うから同じの書かせつつ公平にはしにくいし
オーバーラップする領域ではライブラリーのAPI叩くだけのHelloWorldレベルのコード比較に終始してしまう
496デフォルトの名無しさん
2018/07/29(日) 22:29:16.57ID:gNiJKIOF つまりパイソニップお手上げ降参状態ですよっと
497デフォルトの名無しさん
2018/07/29(日) 22:50:48.50ID:HPChxVcI Python嫌いってどういう層だよ
498デフォルトの名無しさん
2018/07/29(日) 22:58:30.53ID:GVyD60rv499デフォルトの名無しさん
2018/07/29(日) 23:03:02.54ID:gNiJKIOF というわけで多言語とか言ってる馬鹿 ID:GVyD60rv はNGっと
500デフォルトの名無しさん
2018/07/30(月) 00:09:51.52ID:15o6QT6I なんでpythonの話になっとるんだ
rustの話が尽きたからか
rustの話が尽きたからか
501デフォルトの名無しさん
2018/07/30(月) 00:20:26.08ID:cSovQdPN 批判っていうか評論も一つの作品だよな
漫画や小説なら良いが評論は悪いという価値観を押し付けるから揉めてるんじゃないか
漫画や小説なら良いが評論は悪いという価値観を押し付けるから揉めてるんじゃないか
502デフォルトの名無しさん
2018/07/30(月) 00:42:35.61ID:BCmT78P/ 拡張子htaみたいな事出来る言語ねーかな
503デフォルトの名無しさん
2018/07/30(月) 21:32:39.35ID:9zA5gDfM >>478
「|」をオーバーロードしてるライブラリはある。
https://github.com/apache/beam/blob/master/sdks/python/apache_beam/examples/wordcount.py
俺は別に読みやすいと思わんが。
「|」をオーバーロードしてるライブラリはある。
https://github.com/apache/beam/blob/master/sdks/python/apache_beam/examples/wordcount.py
俺は別に読みやすいと思わんが。
504デフォルトの名無しさん
2018/07/30(月) 22:36:49.52ID:15o6QT6I 数学やってりゃ分かるってのは高級言語にとって正当性の担保にならんと思うんだけど
pythonはスクリプトを書くためにあってアプリケーションを書くには向いてないよ
pythonはスクリプトを書くためにあってアプリケーションを書くには向いてないよ
505デフォルトの名無しさん
2018/07/30(月) 23:30:08.44ID:BCmT78P/ pythonはスクリプトやアプリケーションとかじゃなくてapiとかライブラリとかじゃないか?
506デフォルトの名無しさん
2018/07/31(火) 02:24:31.97ID:6M1+k6px スクリプトは後で修正するためにある
正当性の担保ってのがなくても後で修正すればいいと思ってる
だからスクリプトはズル
本物のアプリケーションはズルをしない
正当性の担保ってのがなくても後で修正すればいいと思ってる
だからスクリプトはズル
本物のアプリケーションはズルをしない
507デフォルトの名無しさん
2018/07/31(火) 06:32:08.41ID:rMUR8HCB androidアプリ開発でGUデザインに拘りたいとしたら
どんな言語がいいでしょうか?
どんな言語がいいでしょうか?
508デフォルトの名無しさん
2018/07/31(火) 07:25:08.27ID:HSKVxhV4 ん?ユニクロをもっと安っぽくしたようなデザインにしたいってこと?
509デフォルトの名無しさん
2018/07/31(火) 07:33:09.79ID:UxY/lhlr510デフォルトの名無しさん
2018/07/31(火) 07:35:04.61ID:NvL3iNMe >>509
お前記事読んでないやろw
お前記事読んでないやろw
511デフォルトの名無しさん
2018/07/31(火) 07:59:40.57ID:ZEe/Gn0n >>507
Unity
Unity
512デフォルトの名無しさん
2018/07/31(火) 08:15:32.70ID:JoTrRiyA GUIライブラリに何を使うかによる
SDLってAndroidでもつかえたっけか?
SDLってAndroidでもつかえたっけか?
513デフォルトの名無しさん
2018/07/31(火) 12:04:21.71ID:wLuD0qiK In our survey of 16,000+ npm users in January 2018, 46% of them reported using TypeScript.
https://twitter.com/seldo/status/1024052940355526656
https://twitter.com/seldo/status/1024052940355526656
514デフォルトの名無しさん
2018/07/31(火) 12:16:30.29ID:MCiT+aJj515デフォルトの名無しさん
2018/07/31(火) 12:35:27.84ID:Y+ETzapn F#使いも生きてるぞ
516デフォルトの名無しさん
2018/07/31(火) 13:56:56.90ID:zoworXJJ >>504
たしかに、そのとおりです
たとえば数学でいう直積(direct product あるいは cartesian product)の
プログラミング言語上の表現を、一般的には「タプル」と呼んでいる
もちろん ML や Haskell に代表される厳格な型システムを前提に設計された
言語の代数的データ型を持ち出すまでもなく、直積と直和の概念は
計算における数学上の概念の中で基本中の基本です
それにもかかわらず Python では、単なる不変(immutable)な配列に対して
公式文書でこともあろうか「タプル」と命名し、驚くなかれ「1要素のタプル」
といふ数学の概念を超越したリテラル構文を定義しちゃいました
世界的に普及している/していた言語は数多くありますが、こんな命名や
リテラル定義が存在するのは、後にも先にも Python だけ、唯一無二の存在です
まさに Python の設計哲学とは;
スクリプト言語にとって数学なんてクソ
といふことなんでしょうね
たしかに、そのとおりです
たとえば数学でいう直積(direct product あるいは cartesian product)の
プログラミング言語上の表現を、一般的には「タプル」と呼んでいる
もちろん ML や Haskell に代表される厳格な型システムを前提に設計された
言語の代数的データ型を持ち出すまでもなく、直積と直和の概念は
計算における数学上の概念の中で基本中の基本です
それにもかかわらず Python では、単なる不変(immutable)な配列に対して
公式文書でこともあろうか「タプル」と命名し、驚くなかれ「1要素のタプル」
といふ数学の概念を超越したリテラル構文を定義しちゃいました
世界的に普及している/していた言語は数多くありますが、こんな命名や
リテラル定義が存在するのは、後にも先にも Python だけ、唯一無二の存在です
まさに Python の設計哲学とは;
スクリプト言語にとって数学なんてクソ
といふことなんでしょうね
517デフォルトの名無しさん
2018/07/31(火) 14:34:58.99ID:U3QRqLaV 直積集合がタプルじゃなくて直積集合の要素がタプルな
んでもってn個の集合の直積を考える場合普通n=1は除外しない
んでもってn個の集合の直積を考える場合普通n=1は除外しない
518デフォルトの名無しさん
2018/07/31(火) 15:00:19.27ID:zoworXJJ >>478
あのぅメソッドチェーンとは異なり、内包表記というのは
決して万能な道具ではないんですけど、ご存知ですか?
内包表記というのは、高階関数 map/filter とジェネレータという
三つの要素を簡潔に表現できる構文糖でしかありませんから、
内包表記では表現できない課題も数多く存在します
ですからたとえば Haskell では内包表記を提供する一方で、
ポイントフリーといふ関数を繋ぐ流れるようなスタイルでも書けます
つまり「メソッドチェーン vs. 内包表記」という対決の図式は成り立ちません
これでもまだ「リスト内包がわからんってわめき散らすの無知晒してるだけ」と
騒ぎたいなら、以下のお題(>>430-431)を内包表記だけで書いてみてください
'-'.join(map(lambda x: str(x), reversed(sorted(a))))
>>478氏が無知でなければ、内包表記でサラッとエレガントなコードを書けますよね?
ちなみに以下のような三重にカッコが入れ子になった醜いコードは勘弁してくださいね
'-'.join(str(x) for x in reveresed(sorted(a)))
あのぅメソッドチェーンとは異なり、内包表記というのは
決して万能な道具ではないんですけど、ご存知ですか?
内包表記というのは、高階関数 map/filter とジェネレータという
三つの要素を簡潔に表現できる構文糖でしかありませんから、
内包表記では表現できない課題も数多く存在します
ですからたとえば Haskell では内包表記を提供する一方で、
ポイントフリーといふ関数を繋ぐ流れるようなスタイルでも書けます
つまり「メソッドチェーン vs. 内包表記」という対決の図式は成り立ちません
これでもまだ「リスト内包がわからんってわめき散らすの無知晒してるだけ」と
騒ぎたいなら、以下のお題(>>430-431)を内包表記だけで書いてみてください
'-'.join(map(lambda x: str(x), reversed(sorted(a))))
>>478氏が無知でなければ、内包表記でサラッとエレガントなコードを書けますよね?
ちなみに以下のような三重にカッコが入れ子になった醜いコードは勘弁してくださいね
'-'.join(str(x) for x in reveresed(sorted(a)))
519デフォルトの名無しさん
2018/07/31(火) 15:33:57.86ID:zoworXJJ >>517
>n個の集合の直積を考える場合普通n=1は除外しない
ええ、それが Python 村の中では「普通」で常識なんですよね
でも Python 村から一歩外に出れば:
n個の集合の直積を考える、ここで n>=2
が「普通」なんですけど、ご存知でしたか?
たとえば手元の教科書(*1)だと、直積は以下のように定義されています
・2つの集合の直積 A × B = { <x, y> | x <- A, y <- B }
・3つの集合の直積 A × B × C = { <x, y, z> | x <- A, y <- B, z <- C }
・4つの集合の直積も同様に定義される
この本では n=1 は定義されていないし、個人としても定義のしようがないと考えます
で、ML/Haskell/Erlang/Prolog といったタプルというデータ構造が存在する言語でも、
「普通」n=1の直積を除外しており、これが世間の常識です
ちなみに「Python村の常識、世間の非常識」といふ格言、聞いたことありませぬか?
ところで、もちろん内包表記はご存知ですよね?
知らないと>>478氏に「無知晒してる」と嗤われちゃいますよ
*1:論理と計算のしくみ
https://www.amazon.co.jp/dp/4000061917/
>n個の集合の直積を考える場合普通n=1は除外しない
ええ、それが Python 村の中では「普通」で常識なんですよね
でも Python 村から一歩外に出れば:
n個の集合の直積を考える、ここで n>=2
が「普通」なんですけど、ご存知でしたか?
たとえば手元の教科書(*1)だと、直積は以下のように定義されています
・2つの集合の直積 A × B = { <x, y> | x <- A, y <- B }
・3つの集合の直積 A × B × C = { <x, y, z> | x <- A, y <- B, z <- C }
・4つの集合の直積も同様に定義される
この本では n=1 は定義されていないし、個人としても定義のしようがないと考えます
で、ML/Haskell/Erlang/Prolog といったタプルというデータ構造が存在する言語でも、
「普通」n=1の直積を除外しており、これが世間の常識です
ちなみに「Python村の常識、世間の非常識」といふ格言、聞いたことありませぬか?
ところで、もちろん内包表記はご存知ですよね?
知らないと>>478氏に「無知晒してる」と嗤われちゃいますよ
*1:論理と計算のしくみ
https://www.amazon.co.jp/dp/4000061917/
520デフォルトの名無しさん
2018/07/31(火) 16:01:29.91ID:6M1+k6px n=1もあるしn=0もある
n=0は直積の単位元いわゆるunit
直和の単位元はbottom
n=0は直積の単位元いわゆるunit
直和の単位元はbottom
521デフォルトの名無しさん
2018/07/31(火) 16:12:57.41ID:zoworXJJ522デフォルトの名無しさん
2018/07/31(火) 17:08:51.40ID:LX5aJa12 >>516
なんだか随分と力んでいるみたいだけれど
> それにもかかわらず Python では、単なる不変(immutable)な配列に対して
> 公式文書でこともあろうか「タプル」と命名し、驚くなかれ「1要素のタプル」
> といふ数学の概念を超越したリテラル構文を定義しちゃいました
> 世界的に普及している/していた言語は数多くありますが、こんな命名や
> リテラル定義が存在するのは、後にも先にも Python だけ、唯一無二の存在です
いや、そういうことを言い出せば同じ引数の値で呼び出しても返す値が同じになるとは限らないCなどの「関数」“function”は数学における関数の概念とは全く違う破廉恥極まりない命名だとなるよ
そもそも手続き型プログラミング言語やオブジェクト指向プログラミング言語での「変数」“variable”と呼ばれているものもも数学の変数とは全く異なる
(例えば、それらの言語で書かれたプログラムの検証を考えるとその問題があからさまになる)
つまりプログラミング言語での用語は数学の用語を借りて使ってはいるが数学でのその用語の表していた概念を尊重しているとは限らないということだ
そういう例、つまり数学用語を数学での概念を尊重しない形でプログラミング言語の世界で借用してしまっている例は探せばいくらでもあるだろう
なんだか随分と力んでいるみたいだけれど
> それにもかかわらず Python では、単なる不変(immutable)な配列に対して
> 公式文書でこともあろうか「タプル」と命名し、驚くなかれ「1要素のタプル」
> といふ数学の概念を超越したリテラル構文を定義しちゃいました
> 世界的に普及している/していた言語は数多くありますが、こんな命名や
> リテラル定義が存在するのは、後にも先にも Python だけ、唯一無二の存在です
いや、そういうことを言い出せば同じ引数の値で呼び出しても返す値が同じになるとは限らないCなどの「関数」“function”は数学における関数の概念とは全く違う破廉恥極まりない命名だとなるよ
そもそも手続き型プログラミング言語やオブジェクト指向プログラミング言語での「変数」“variable”と呼ばれているものもも数学の変数とは全く異なる
(例えば、それらの言語で書かれたプログラムの検証を考えるとその問題があからさまになる)
つまりプログラミング言語での用語は数学の用語を借りて使ってはいるが数学でのその用語の表していた概念を尊重しているとは限らないということだ
そういう例、つまり数学用語を数学での概念を尊重しない形でプログラミング言語の世界で借用してしまっている例は探せばいくらでもあるだろう
523デフォルトの名無しさん
2018/07/31(火) 17:40:46.67ID:vAluDZRs そもそも = が代入って時点で数学と違うんだから
いちいち「厳密な定義がー」いう方がどうかしてる。
いちいち「厳密な定義がー」いう方がどうかしてる。
524デフォルトの名無しさん
2018/07/31(火) 17:55:08.00ID:zfxDeDFf 普通にWikipediaでタプルをしらべたら一要素のタプルの事をシングルというと
書いてあるのだがwww
書いてあるのだがwww
525デフォルトの名無しさん
2018/07/31(火) 18:08:24.59ID:zoworXJJ >>522
数学の定義や数式を計算機上で実行するには、
必然的に「解釈」という(あるいは「評価」とも呼ばれる)プロセスを伴いますから、
数学の概念とプログラミング言語との間に乖離(かいり)が存在するのは一般論ですし、
その為に計算機工学という分野で研究成果が積み重ねられてきました
もちろんこうした乖離は一般論ですから、例を探せばいくらでも挙げられるでしょう
たとえば「n個の直積を考える」場合に数学では n=1 や n=0 を除外しないモデルを
構築することは可能ですが(>>517,521)、計算機工学の研究成果を元に設計された
言語だと「n個の集合の直積を考える、ここで n>=2」が暗黙のうちに認知されています
(なぜなら n=1 または n=2 の直積は、一般的には形式的に定義できない為)
ところが、こうした計算機工学の成果である n>=2 を無視し、
そんなのどうでもいいとばかりに「単なる不変な配列をタプルと命名する(>>516)」といふ
深淵の淵へ自ら飛び込んだ稀有な例が Python といふ次世代言語なんですよ
もしも「他のあらゆる言語では計算機工学の常識に沿って設計しているのに、
ある特定の言語ではそれを無視している」という具体例があれば、ご教示願います
たとえば「Python におけるタプルの命名」は、他の言語には見られない唯一無二の例です
数学の定義や数式を計算機上で実行するには、
必然的に「解釈」という(あるいは「評価」とも呼ばれる)プロセスを伴いますから、
数学の概念とプログラミング言語との間に乖離(かいり)が存在するのは一般論ですし、
その為に計算機工学という分野で研究成果が積み重ねられてきました
もちろんこうした乖離は一般論ですから、例を探せばいくらでも挙げられるでしょう
たとえば「n個の直積を考える」場合に数学では n=1 や n=0 を除外しないモデルを
構築することは可能ですが(>>517,521)、計算機工学の研究成果を元に設計された
言語だと「n個の集合の直積を考える、ここで n>=2」が暗黙のうちに認知されています
(なぜなら n=1 または n=2 の直積は、一般的には形式的に定義できない為)
ところが、こうした計算機工学の成果である n>=2 を無視し、
そんなのどうでもいいとばかりに「単なる不変な配列をタプルと命名する(>>516)」といふ
深淵の淵へ自ら飛び込んだ稀有な例が Python といふ次世代言語なんですよ
もしも「他のあらゆる言語では計算機工学の常識に沿って設計しているのに、
ある特定の言語ではそれを無視している」という具体例があれば、ご教示願います
たとえば「Python におけるタプルの命名」は、他の言語には見られない唯一無二の例です
526デフォルトの名無しさん
2018/07/31(火) 18:21:46.76ID:zfxDeDFf A = { x | x <- A}
A × B = { <x, y> | x <- A, y <- B }
普通に定義できるがwww
A × B = { <x, y> | x <- A, y <- B }
普通に定義できるがwww
527デフォルトの名無しさん
2018/07/31(火) 18:36:17.24ID:zoworXJJ >>478
>それはそれとしてPythonはもっと関数を横に繋げられるようにしてくれ
>Elixirのパイプ演算子みたいな感じでさあ
いや、新たにパイプ演算子みたいな構文を追加しなくても、
オブジェクト指向言語の Python であれば、メソッドチェーンで実現できるよ
だって、Python を除く今時のオブジェクト指向言語では実現できていますから
その具体例が >>430 のリンク先のブログ主様が書いた簡潔なライブラリです
問題は、「なぜこれをやろうとしないのか?」という点です
もちろんライブラリの後方互換性は失われますが、
python2 から python3 で致命的な「後方互換性の断絶」を断行したのが
Python ですから、一貫性のあるAPIを提供するライブラリへの刷新もできたはず
さらに根本原因にさかのぼれば、「なぜ最初から一貫性のあるAPIを設計しなかったのか」
といふ疑念に突き当たります
だって、Python を除く今時のオブジェクト指向言語では設計できていますから
最後に背景原因を考察すると、Python 作者のGuido氏が:
API の設計において一貫性などはクソ
と考えていたのか、それとも:
オブジェクト指向が流行っていたから行き当たりばったりに設計した、
今は後悔している
と考えているのか興味深い
>それはそれとしてPythonはもっと関数を横に繋げられるようにしてくれ
>Elixirのパイプ演算子みたいな感じでさあ
いや、新たにパイプ演算子みたいな構文を追加しなくても、
オブジェクト指向言語の Python であれば、メソッドチェーンで実現できるよ
だって、Python を除く今時のオブジェクト指向言語では実現できていますから
その具体例が >>430 のリンク先のブログ主様が書いた簡潔なライブラリです
問題は、「なぜこれをやろうとしないのか?」という点です
もちろんライブラリの後方互換性は失われますが、
python2 から python3 で致命的な「後方互換性の断絶」を断行したのが
Python ですから、一貫性のあるAPIを提供するライブラリへの刷新もできたはず
さらに根本原因にさかのぼれば、「なぜ最初から一貫性のあるAPIを設計しなかったのか」
といふ疑念に突き当たります
だって、Python を除く今時のオブジェクト指向言語では設計できていますから
最後に背景原因を考察すると、Python 作者のGuido氏が:
API の設計において一貫性などはクソ
と考えていたのか、それとも:
オブジェクト指向が流行っていたから行き当たりばったりに設計した、
今は後悔している
と考えているのか興味深い
528デフォルトの名無しさん
2018/07/31(火) 18:45:34.71ID:zoworXJJ >>526
>A = { x | x <- A}
えぇとぉ、{ x | x <- A} というのは単に集合 A を内包的に定義してるだけですから、
それは「1個の集合Aから構成される直積」ではなく単に「単純集合A」を定義してるだけです
あぁそうか、フェイトニスタには内包表記うんぬん以前に、数学の教養が欠けているのですね
ついうっかりしておりまして、大変失礼をば致しますた
>A = { x | x <- A}
えぇとぉ、{ x | x <- A} というのは単に集合 A を内包的に定義してるだけですから、
それは「1個の集合Aから構成される直積」ではなく単に「単純集合A」を定義してるだけです
あぁそうか、フェイトニスタには内包表記うんぬん以前に、数学の教養が欠けているのですね
ついうっかりしておりまして、大変失礼をば致しますた
529デフォルトの名無しさん
2018/07/31(火) 19:00:43.13ID:zoworXJJ うっかりミスを訂正:
>>525
X:>(なぜなら n=1 または n=2 の直積は、一般的には形式的に定義できない為)
O:>(なぜなら n=1 または n=0 の直積は、一般的には形式的に定義できない為)
>>525
X:>(なぜなら n=1 または n=2 の直積は、一般的には形式的に定義できない為)
O:>(なぜなら n=1 または n=0 の直積は、一般的には形式的に定義できない為)
530デフォルトの名無しさん
2018/07/31(火) 19:04:21.79ID:zfxDeDFf 定義するのに集合と同じ定義では同じでは駄目というルールはないから間違っては無いwww
ちなみにn=0の直積は1元集合として定義できるとWikipediaにかいてあるwww
ちなみにn=0の直積は1元集合として定義できるとWikipediaにかいてあるwww
531デフォルトの名無しさん
2018/07/31(火) 19:12:42.47ID:x816LWzK ウィキペに書いてあるとか言っちゃう人って・・・
532デフォルトの名無しさん
2018/07/31(火) 19:36:15.75ID:zfxDeDFf 正式な定義だと、直積の要素はペアの中にペアがある構造じゃないと駄目www
A × B × C = { <x, y, z> | x <- A, y <- B, z <- C }
↑の定義があってるのは日本のWikipediaだっけでしたwwww
これを使うにはn-fold Cartesian productという直積を拡張した奴じゃないとだめでした残念www
とくにn=1の時はそのままA=Aとちゃんとした本に書いてあるwwww
A × B × C = { <x, y, z> | x <- A, y <- B, z <- C }
↑の定義があってるのは日本のWikipediaだっけでしたwwww
これを使うにはn-fold Cartesian productという直積を拡張した奴じゃないとだめでした残念www
とくにn=1の時はそのままA=Aとちゃんとした本に書いてあるwwww
533デフォルトの名無しさん
2018/07/31(火) 19:38:51.12ID:xC1/ia91 今までの流れをまとめるとpythonはクソ。
TypeScriptが最強。という理解でよいでふか?
TypeScriptが最強。という理解でよいでふか?
534デフォルトの名無しさん
2018/07/31(火) 20:41:56.45ID:CfkG900T rustが最強
が正しい
が正しい
535デフォルトの名無しさん
2018/07/31(火) 21:51:57.40ID:vpErkqT1 メソッドチェーンでもリスト内包でも異常なまでのテンポラリ変数嫌悪を感じるのだが、
無理にそんな書き方するくらいならテンポラリ変数使えや。
無理にそんな書き方するくらいならテンポラリ変数使えや。
536デフォルトの名無しさん
2018/07/31(火) 22:05:54.62ID:CfkG900T メソッドチェーンは無理なく書けるでしょ
変数はバグの餌だから忌諱するのは当然
変数はバグの餌だから忌諱するのは当然
537デフォルトの名無しさん
2018/07/31(火) 22:09:04.65ID:4i5flEMB 変数があって嬉しいのはデバッガでステップイン実行するときだけだな
そろそろステップの概念を卒業した新発想のデバッガが必要な時期にきてると思う
そろそろステップの概念を卒業した新発想のデバッガが必要な時期にきてると思う
538デフォルトの名無しさん
2018/07/31(火) 22:10:09.78ID:/w6/tE8P 一時的な内部処理でまでステートを毛嫌いする純粋病の関数型信者と似ている
539デフォルトの名無しさん
2018/07/31(火) 22:14:45.36ID:hpcufxDD お前らみたいなドカタなら兎も角、数学者がn=0やn=1に自然に拡張できる定義をn>=2に限定するわけないじゃん
ドカタここに極まれりだな
ドカタここに極まれりだな
540デフォルトの名無しさん
2018/07/31(火) 22:17:04.70ID:10MH4XIN メソッドチェーンってワンライナーと同類だろ
541デフォルトの名無しさん
2018/07/31(火) 22:23:11.93ID:CfkG900T プログラマならバグの素を毛嫌いするのは当たり前じゃん
あくまでリーダビリティを損ねない範疇でだけども
あくまでリーダビリティを損ねない範疇でだけども
542デフォルトの名無しさん
2018/07/31(火) 22:24:35.12ID:omk/SwPI543デフォルトの名無しさん
2018/07/31(火) 22:27:24.42ID:10MH4XIN >>539
ちゃうやろおっさん
型理論的にはn>=2に拡張するために持ち出すのがpair
なのでn=0,1にpairを持ち出す必要がない
別の言い方をすると型理論的にはAと<A>は同じ
そこを区別するのがアドホックにpairを導入した言語ということ
組み込みの土方より
ちゃうやろおっさん
型理論的にはn>=2に拡張するために持ち出すのがpair
なのでn=0,1にpairを持ち出す必要がない
別の言い方をすると型理論的にはAと<A>は同じ
そこを区別するのがアドホックにpairを導入した言語ということ
組み込みの土方より
544デフォルトの名無しさん
2018/07/31(火) 22:35:12.06ID:omk/SwPI >>541
たとえばコレクションのフィルター関数を実装するようなときに
一時的にミュータブルなコレクション作ってループ回して最後にイミュータブルにして返せばいいようなものを
最初の要素が条件満たさなかったらそれを落とした新しい不変コレクション作って返す関数の再帰で書くようなゴミが純粋病
たとえばコレクションのフィルター関数を実装するようなときに
一時的にミュータブルなコレクション作ってループ回して最後にイミュータブルにして返せばいいようなものを
最初の要素が条件満たさなかったらそれを落とした新しい不変コレクション作って返す関数の再帰で書くようなゴミが純粋病
545デフォルトの名無しさん
2018/07/31(火) 22:37:48.27ID:vpErkqT1546デフォルトの名無しさん
2018/07/31(火) 22:39:01.83ID:CfkG900T547デフォルトの名無しさん
2018/07/31(火) 22:39:55.17ID:CfkG900T548デフォルトの名無しさん
2018/07/31(火) 22:43:24.72ID:10MH4XIN >>542
コレクションの操作ってのが具体的にどういうのかしらんけど
(おもちゃのような例は勘弁)
初見のコードだと返り値が何なのか副作用のありなしもよくわかんないのが嫌い
組み込み屋なんでそういうのに神経質なんですわ
コレクションの操作ってのが具体的にどういうのかしらんけど
(おもちゃのような例は勘弁)
初見のコードだと返り値が何なのか副作用のありなしもよくわかんないのが嫌い
組み込み屋なんでそういうのに神経質なんですわ
549デフォルトの名無しさん
2018/07/31(火) 22:46:40.79ID:hpcufxDD550デフォルトの名無しさん
2018/07/31(火) 22:58:39.97ID:omk/SwPI >>548
おもちゃのような例とやらがなんだか知らんが
「配列にフィルタかけてマップしてソート」みたいなのはメソッドチェインで書くのが普通だし
プロダクトコードで頻出するし
言語組み込みとか標準ライブラリの範囲なので仕様知らないのは知らないほうが悪いで終了
おもちゃのような例とやらがなんだか知らんが
「配列にフィルタかけてマップしてソート」みたいなのはメソッドチェインで書くのが普通だし
プロダクトコードで頻出するし
言語組み込みとか標準ライブラリの範囲なので仕様知らないのは知らないほうが悪いで終了
551デフォルトの名無しさん
2018/07/31(火) 23:33:40.73ID:CfkG900T 組み込み屋だからコードが読めないって言い分が通用するのか
552デフォルトの名無しさん
2018/08/01(水) 03:26:51.13ID:KaW6n03Q b=a.filter(hoge).sort(piyo)はaが変化しないけど
b=a.sort(piyo).filter(hoge)はaが変化するJavaScriptとかもあるし
気持ちがわからんでもない
b=a.sort(piyo).filter(hoge)はaが変化するJavaScriptとかもあるし
気持ちがわからんでもない
553デフォルトの名無しさん
2018/08/01(水) 04:53:24.11ID:52qTUS9q メソチェ嫌い
554デフォルトの名無しさん
2018/08/01(水) 05:46:47.82ID:Lge0gQj8 c=a
b=a.sort(piyo).filter(hoge)
a=c
b=a.sort(piyo).filter(hoge)
a=c
555デフォルトの名無しさん
2018/08/01(水) 06:24:23.31ID:KofKD7jP jsのsortはソート結果を戻り値でも返すからよくないんだよね
rustは関数が破壊的な操作をするか一目で分かってよいんだよね
rustは関数が破壊的な操作をするか一目で分かってよいんだよね
556デフォルトの名無しさん
2018/08/01(水) 07:33:14.80ID:4GZUmxRn 関数の副作用や純粋性が気になるなら
関数型の言語さわるのも良いぞ
F#は宗教論争に発展せず
現場でも実用十分的
関数型の言語さわるのも良いぞ
F#は宗教論争に発展せず
現場でも実用十分的
557デフォルトの名無しさん
2018/08/01(水) 08:04:53.43ID:mJtUlzgh >>552
マジかー。副作用あるかないかわかるようにしてほしいわ
マジかー。副作用あるかないかわかるようにしてほしいわ
558デフォルトの名無しさん
2018/08/01(水) 08:39:51.67ID:hzuJqRKu JavaScriptはうんこだから仕方ない
559デフォルトの名無しさん
2018/08/01(水) 08:54:45.09ID:/d6Lb+hA >>550
> 言語組み込みとか標準ライブラリの範囲なので仕様知らないのは知らないほうが悪いで終了
なんでそこで特定の言語前提になってんの?w
標準の範囲なら百歩譲ってありだけど標準だけのデザインという保証はないやろ普通
あといちいちAPIリファレンスで確認しないと使えないってのは言語の可読性低いとも言えるわ
> 言語組み込みとか標準ライブラリの範囲なので仕様知らないのは知らないほうが悪いで終了
なんでそこで特定の言語前提になってんの?w
標準の範囲なら百歩譲ってありだけど標準だけのデザインという保証はないやろ普通
あといちいちAPIリファレンスで確認しないと使えないってのは言語の可読性低いとも言えるわ
560デフォルトの名無しさん
2018/08/01(水) 09:19:02.07ID:Lq6vBG3T ドキュメント読まずにコード書くプログラマー降誕
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【実況】博衣こよりのえちえち歌枠🧪
- 高市「発言は撤回しない。謝罪もするな。外務省局長!任せたぞ。」👈なにをさせたかったの?😲 [826239858]
- 【速報】51歳まで自衛隊になれるように法改正ww [347751896]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 自分に自信がない女の子、陽キャ美容室で80cmのエクステを付けた結果wwwwwwwwwwwwwwwwwww [329329848]
