スレタイ以外の言語も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
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 ドキュメント読まずにコード書くプログラマー降誕
561デフォルトの名無しさん
2018/08/01(水) 09:29:11.08ID:IFtOcB8Z 批評家が口だけで問題解決することを理想としているように
可読性は目だけで解決するのが理想的である
可読性は目だけで解決するのが理想的である
562デフォルトの名無しさん
2018/08/01(水) 10:27:41.74ID:Lq6vBG3T そしてハンガリアン記法が産まれた
563デフォルトの名無しさん
2018/08/01(水) 10:54:20.08ID:hzuJqRKu >>559
土方は古代言語をメモ帳で書いてるのか……
写像や部分集合、ソートなんぞはほとんどの言語で標準で用意されてるし
IDEなりプラグイン入れたエディタならリファレンスはマウスオーバーするかショートカット叩くだけだよ
土方は古代言語をメモ帳で書いてるのか……
写像や部分集合、ソートなんぞはほとんどの言語で標準で用意されてるし
IDEなりプラグイン入れたエディタならリファレンスはマウスオーバーするかショートカット叩くだけだよ
564デフォルトの名無しさん
2018/08/01(水) 11:14:28.61ID:+WQ1j7Jt やっぱりCOBOLなんだよなあ
565デフォルトの名無しさん
2018/08/01(水) 22:15:44.23ID:zZ0QT3av >>523
> そもそも = が代入って時点で数学と違うんだから
それは単なる記法上の問題であって本質じゃない
C一族みたいないい加減な言語でなくAlgolやPascalのなどの正統派Algol系言語のように代入を表す記号を “:=” で書く言語であっても変数の概念が数学のそれと全く違うという問題はCなどでの変数と同じ
見掛け上の記号の使い方がいい加減という問題と、ある用語で表される概念がいい加減(間違っている)という問題とはレベルが全く違う
> そもそも = が代入って時点で数学と違うんだから
それは単なる記法上の問題であって本質じゃない
C一族みたいないい加減な言語でなくAlgolやPascalのなどの正統派Algol系言語のように代入を表す記号を “:=” で書く言語であっても変数の概念が数学のそれと全く違うという問題はCなどでの変数と同じ
見掛け上の記号の使い方がいい加減という問題と、ある用語で表される概念がいい加減(間違っている)という問題とはレベルが全く違う
566デフォルトの名無しさん
2018/08/01(水) 22:27:10.95ID:KofKD7jP それが何レベルなのか知らんけどどうでもいいじゃん
数学とプログラミングは別物なんだし
数学とプログラミングは別物なんだし
567デフォルトの名無しさん
2018/08/01(水) 22:44:31.92ID:vVTk17fP568デフォルトの名無しさん
2018/08/01(水) 23:08:34.73ID:KaW6n03Q569デフォルトの名無しさん
2018/08/02(木) 00:36:50.69ID:RmPassIF こういう話を見ると言語としてイミュータブルな変数しかない言語が良い気がしてくる。
570デフォルトの名無しさん
2018/08/02(木) 03:06:06.93ID:68/YZkTI 「いふ」とか言っちゃうイタイ奴にろくなのはいないな
571デフォルトの名無しさん
2018/08/02(木) 03:23:08.65ID:7JMdFE06572デフォルトの名無しさん
2018/08/02(木) 03:24:30.81ID:uTIVZVJH ずっと数学言ってるやついい加減うぜえわ
別スレ立ててそっちでやれやボケが
別スレ立ててそっちでやれやボケが
573デフォルトの名無しさん
2018/08/02(木) 06:18:26.62ID:iydYt4gP JavaScriptのsortとreverseが破壊的なのがぱっと見わからないのも、
JavaScriptの命名規則がうんこなだけでメソッドチェーン自体の良し悪しとは関係ない
JavaScriptの命名規則がうんこなだけでメソッドチェーン自体の良し悪しとは関係ない
574デフォルトの名無しさん
2018/08/02(木) 06:58:50.64ID:NbZtWKau 関数合成大好きな関数型バカがメソッドチェーン腐すの、マジ笑えるww
575デフォルトの名無しさん
2018/08/02(木) 08:25:49.67ID:j9EqWGQJ >>573
こればっかりはなぁ。後発の言語は、副作用有無が明示されるようになってほしい。命名規則とか人間が頑張るタイプはやめて
こればっかりはなぁ。後発の言語は、副作用有無が明示されるようになってほしい。命名規則とか人間が頑張るタイプはやめて
576デフォルトの名無しさん
2018/08/02(木) 09:00:45.23ID:St12vf3Y やはりRustだな
577デフォルトの名無しさん
2018/08/02(木) 09:09:27.15ID:eWP0KV4o webサービス作るとき。というかrdbとの連携って静的言語より動的言語のほうが向いてる気がするんだけど、そんなことはない?
578デフォルトの名無しさん
2018/08/02(木) 13:33:10.21ID:2LzP698W そんなことなかっぺ
579デフォルトの名無しさん
2018/08/02(木) 21:52:10.29ID:yHWyeNWP TypeScriptは事実上死んだだろ
580デフォルトの名無しさん
2018/08/02(木) 21:54:23.55ID:RP1FF5pC581デフォルトの名無しさん
2018/08/02(木) 21:55:36.74ID:0KRWeg2T >>579
新しいのが出たんだが
新しいのが出たんだが
582デフォルトの名無しさん
2018/08/02(木) 22:57:15.05ID:U+SwOe4H typescriptなしにjavascriptを書こうとは思わないからな
583デフォルトの名無しさん
2018/08/02(木) 23:26:38.99ID:xmgsCqay 頑なに副作用嫌ってる人意味分からん
java.awt.Graphics2Dとかにあるような
コンテクストオブジェクトをイジイジするのってめちゃ便利やんけ
java.awt.Graphics2Dとかにあるような
コンテクストオブジェクトをイジイジするのってめちゃ便利やんけ
584デフォルトの名無しさん
2018/08/02(木) 23:45:39.47ID:Ihv2w8Qg >>575
バカは引数のconst外してでも副作用入れてくるから言語で規制するって発想自体が無駄。
バカは引数のconst外してでも副作用入れてくるから言語で規制するって発想自体が無駄。
585デフォルトの名無しさん
2018/08/02(木) 23:58:42.08ID:2ToUeHg/ 1行に書かなきゃどんどん一時変数を増やさなきゃならない関数パイプラインはそれなりに意義が
あると思うけど、そうじゃないメソッドチェインはわざわざ見にくい1行の式にしなくても、と思う。
あると思うけど、そうじゃないメソッドチェインはわざわざ見にくい1行の式にしなくても、と思う。
586デフォルトの名無しさん
2018/08/03(金) 01:33:05.65ID:xgfpZ/vV とはいえtypescriptは型情報が嘘つくことあるのがしんどい。ないよりはマシなんだけど。
いまいち信用できない。
jsに、標準で型情報ついてくれないかなー。
いまいち信用できない。
jsに、標準で型情報ついてくれないかなー。
587デフォルトの名無しさん
2018/08/03(金) 04:43:38.64ID:K19AvQuK ESの付け焼き刃的実装に限界があるでしょ
588デフォルトの名無しさん
2018/08/03(金) 06:06:54.20ID:2wLWPbYE 嘘つき「何も宣言しないよりはマシ」
付け焼刃「何もしないよりはマシ」
ギャンブル依存症「何も賭けないよりはマシ」
付け焼刃「何もしないよりはマシ」
ギャンブル依存症「何も賭けないよりはマシ」
589デフォルトの名無しさん
2018/08/03(金) 10:32:16.64ID:bzinJLAw 所詮MSの作った詐欺言語だわな
590デフォルトの名無しさん
2018/08/03(金) 10:34:43.31ID:bzinJLAw >>390
の徹底を求めます
の徹底を求めます
591デフォルトの名無しさん
2018/08/03(金) 10:46:59.25ID:Nsq6cZsy TypeScriptはもうデファクトスタンダードなのよね
592デフォルトの名無しさん
2018/08/03(金) 11:49:14.47ID:5Gvag+uQ >>590
病的になんだか拗らせてるのかな
病的になんだか拗らせてるのかな
593デフォルトの名無しさん
2018/08/03(金) 14:13:45.54ID:2wLWPbYE なぜ病気とか健康とかなんですか
悪とか正義とかではだめなんですか
悪とか正義とかではだめなんですか
594デフォルトの名無しさん
2018/08/03(金) 14:37:25.10ID:284JcKyJ Linus氏曰く「マイクロソフト嫌悪は『病気』」
https://srad.jp/story/09/07/28/0326208/
https://srad.jp/story/09/07/28/0326208/
595デフォルトの名無しさん
2018/08/03(金) 15:01:39.29ID:2wLWPbYE 病人は生産性がないなんて言ったらたぶん炎上するし
悪人は生産性がないと言う方が無難だと思うけどなあ
悪人は生産性がないと言う方が無難だと思うけどなあ
596デフォルトの名無しさん
2018/08/03(金) 21:26:18.77ID:2vUMzRdm 生産性がないならまだいいが生産性がマイナスな輩というのがいる。
こういう輩を見るとベイシックインカムはいいんじゃないかと本気で思うよ。
こういう輩を見るとベイシックインカムはいいんじゃないかと本気で思うよ。
597デフォルトの名無しさん
2018/08/03(金) 22:58:37.04ID:iVE9Y99e >>586
嘘って?
嘘って?
598デフォルトの名無しさん
2018/08/04(土) 10:28:43.19ID:uVhwgvNs やっぱ副作のないメソチェが最高やろ
リス内記は読つら
リス内記は読つら
599デフォルトの名無しさん
2018/08/04(土) 10:30:16.07ID:uVhwgvNs >>597
それは愛だよ
それは愛だよ
600デフォルトの名無しさん
2018/08/04(土) 10:58:41.10ID:RjyiLlMo 初心者用の言語は上級者の要求を満たすことが出来ないということだな。
上級者が初心者用の言語使うのが間違ってるな。
haskellを使えば副作用を分離出来るし、メソッドチェーンも出来るし、
直積のタプルも0次元からN次元まで使えるし(1次元は普通の集合)
解決だな。
上級者が初心者用の言語使うのが間違ってるな。
haskellを使えば副作用を分離出来るし、メソッドチェーンも出来るし、
直積のタプルも0次元からN次元まで使えるし(1次元は普通の集合)
解決だな。
601デフォルトの名無しさん
2018/08/04(土) 11:18:31.48ID:uVhwgvNs ハスルケはセパレイタとしての記号が少ないからリイダビリティが悪い
そして誰もいなくなっただろう
そして誰もいなくなっただろう
602デフォルトの名無しさん
2018/08/04(土) 12:29:28.79ID:uqPZ4G5F Haskellはタプルを使わなくてもコンストラクタのアリティを2以上にできる
多変数コンストラクタの具体例のひとつにすぎないのがHaskellのタプル
1変数コンストラクタも無数にある
だから a と (a,) が同じ型にならないPythonを見ても違和感はない
多変数コンストラクタの具体例のひとつにすぎないのがHaskellのタプル
1変数コンストラクタも無数にある
だから a と (a,) が同じ型にならないPythonを見ても違和感はない
603デフォルトの名無しさん
2018/08/04(土) 14:55:00.60ID:PeeX9dIT >>601
オレオレ略語とか変なカタカナ表記とか、お前さんのレスもreadability低いぞ
オレオレ略語とか変なカタカナ表記とか、お前さんのレスもreadability低いぞ
604デフォルトの名無しさん
2018/08/04(土) 16:06:26.17ID:uVhwgvNs >>603
これが通なんだよなあ
これが通なんだよなあ
605デフォルトの名無しさん
2018/08/04(土) 18:12:45.89ID:2981o0py ナウいハスルカー来たな
606デフォルトの名無しさん
2018/08/06(月) 14:41:08.25ID:mInzEOma >>598
だからなんでリスト内包vsメソッドチェーンの対立になってんだよ
だからなんでリスト内包vsメソッドチェーンの対立になってんだよ
607デフォルトの名無しさん
2018/08/06(月) 16:48:04.88ID:F/jngZf9 ハスケルはエコシステムが腐ってるという話を聞いたけど本当?
言語がいくらすごくても環境構築で、しんどい思いするなら用無しなんですが
言語がいくらすごくても環境構築で、しんどい思いするなら用無しなんですが
608デフォルトの名無しさん
2018/08/06(月) 16:59:19.53ID:N1MnEH4U 改善されたことになっているが正直クソ
609デフォルトの名無しさん
2018/08/06(月) 17:02:40.30ID:bv191ZQE 理論ばかりの頭でっかちの奴等ばっかりだからな。
実用性なんかどうでもいいんだろ。
だから実用されないんだよw
実用性なんかどうでもいいんだろ。
だから実用されないんだよw
610デフォルトの名無しさん
2018/08/06(月) 19:32:00.71ID:ykSda89u611デフォルトの名無しさん
2018/08/06(月) 21:10:23.18ID:6BhDg/Vc 1. 関数プログラミング自体が実は大したことない
2. 副作用禁止の強制が邪魔
3. 使ってるプログラマーのレベルが低い(偏屈しか使わない・ユーザー層が薄い)
4. まだ成熟していないだけ
どうだろう。4だと思いたいが…
2. 副作用禁止の強制が邪魔
3. 使ってるプログラマーのレベルが低い(偏屈しか使わない・ユーザー層が薄い)
4. まだ成熟していないだけ
どうだろう。4だと思いたいが…
612デフォルトの名無しさん
2018/08/06(月) 21:20:23.85ID:2AWODdBK ・Web系→モデルやロジックが単純なので関数型のメリットなし
・ゲーム系→常に時間変化を扱うので関数型のメリットなし
・業務系→PGの単価が上がって割に合わないので関数型のメリットなし
・ゲーム系→常に時間変化を扱うので関数型のメリットなし
・業務系→PGの単価が上がって割に合わないので関数型のメリットなし
613デフォルトの名無しさん
2018/08/06(月) 21:28:53.61ID:13KQrLiC 関数型の定義が未だに分からない
2だけならどの言語でも原則として受け入れられているんじゃないの
2だけならどの言語でも原則として受け入れられているんじゃないの
614デフォルトの名無しさん
2018/08/06(月) 21:45:44.03ID:2AWODdBK 関数型はテストするまでもなく結果の明らかな極めて宣言性の高いコーディングができるというのが実用上最大の強みなわけだけど、
関数型マニアの関心は主に無限リストやら再帰やらモナドやら、自らその宣言性を捨てるテクニックにばかり向いていて、
結局関数型の何が嬉しいのかよくわからん状態になってしまってるのが現状
関数型マニアの関心は主に無限リストやら再帰やらモナドやら、自らその宣言性を捨てるテクニックにばかり向いていて、
結局関数型の何が嬉しいのかよくわからん状態になってしまってるのが現状
615デフォルトの名無しさん
2018/08/06(月) 21:58:21.43ID:13KQrLiC 具体的にはどんなコードになるの?
そんな単純なコードの断片だけを組み合わせるだけで実用に耐えうる可読性や性能を発揮できるもんなの?
そんな単純なコードの断片だけを組み合わせるだけで実用に耐えうる可読性や性能を発揮できるもんなの?
616デフォルトの名無しさん
2018/08/06(月) 21:59:00.02ID:iAZi0X5l 関数単位、メソッド単位でなるべく純粋にしておくのは重要
短い関数内部の実装まで純粋にしようとするのは宗教
短い関数内部の実装まで純粋にしようとするのは宗教
617デフォルトの名無しさん
2018/08/06(月) 22:15:10.24ID:GZIQzwJh 平気で数百メガあるようなデータに対して副作用のないメソッドチェーンで加工するのって普通にやることなの?
618デフォルトの名無しさん
2018/08/06(月) 22:27:24.52ID:YK5LkNr+■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で ★2 [ぐれ★]
- 【日刊】暇空茜、また敗訴🥸 [359965264]
- 『猟友会がクマ駆除を嫌がるなら潰すべき。職務を放棄するハンターから免許や銃を没収して罰金を取ろう』の声、ネットで上がる [932029429]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 台湾政党が高市首相「存立危機事態」発言に感謝の書簡「我々の心を強く奮い立たせるものでした」 [834922174]
- 高市のプライドはエベレストより高い。だから、発言を撤回できない [805596214]
- 【正論】有識者「高市早苗に合理的配慮をしなかった野党が悪い」 [175344491]
