スレタイ以外の言語もok
前スレ
次世代言語Part7[Go Rust Swift Kotlin TypeScript]
http://mevius.5ch.net/test/read.cgi/tech/1508403098/
探検
次世代言語Part8[Haskell Rust Kotlin TypeScript]
■ このスレッドは過去ログ倉庫に格納されています
2017/12/01(金) 23:08:21.45ID:FxdZTiuZ
666デフォルトの名無しさん
2018/01/17(水) 21:34:21.77ID:zdlnY+SA >>656
あれれ、日本国内ではそういう認識が浸透してるの?
世界的には Python の lambda が欠陥であることは広く知られていて、
改善に向けた議論も重ねられたけど、結局、作者のGuido氏が
「解けないパズル(unsolvable puzzle)」と匙を投げたという残念な
結論のまま現在に至っているという共通認識があります
https://mevius.5ch.net/test/read.cgi/tech/1415419907/197/
やっぱり日本在住の Pythonista がガラパゴスなのは昔から同じですね
http://mevius.2ch.net/test/read.cgi/tech/1345123070/70-71/
あれれ、日本国内ではそういう認識が浸透してるの?
世界的には Python の lambda が欠陥であることは広く知られていて、
改善に向けた議論も重ねられたけど、結局、作者のGuido氏が
「解けないパズル(unsolvable puzzle)」と匙を投げたという残念な
結論のまま現在に至っているという共通認識があります
https://mevius.5ch.net/test/read.cgi/tech/1415419907/197/
やっぱり日本在住の Pythonista がガラパゴスなのは昔から同じですね
http://mevius.2ch.net/test/read.cgi/tech/1345123070/70-71/
667デフォルトの名無しさん
2018/01/17(水) 22:01:34.45ID:jFkmgXk5 python のラムダの使い道ってほとんどがソートに渡す比較関数くらいだと思う。
668デフォルトの名無しさん
2018/01/17(水) 22:47:35.07ID:I48MtSJA 世界的な認識のソースでも貼ってそうな場所にあるリンクが2chの別スレへのリンクで困惑している
669デフォルトの名無しさん
2018/01/18(木) 05:27:53.26ID:zo82h2qj Pythonあまり知らんけど、上のリンク見てて思ったのは、
1. 自分で高階関数を作れない(ラムダ式が利用できる関数が少ないと書いてある)
2. where節みたいなスコープの限定されたローカルな書き捨ての関数を用意する文法がない(読みにくいでしょ?とか書いてある)
この辺の縛りがあるからでないかい?
1. 自分で高階関数を作れない(ラムダ式が利用できる関数が少ないと書いてある)
2. where節みたいなスコープの限定されたローカルな書き捨ての関数を用意する文法がない(読みにくいでしょ?とか書いてある)
この辺の縛りがあるからでないかい?
670デフォルトの名無しさん
2018/01/18(木) 09:22:04.51ID:AIUmpkCu ごめん、>>669は寝ぼけて適当なこと書いたぽいから、無視しといて。
671デフォルトの名無しさん
2018/01/18(木) 21:25:08.77ID:oG29giIx 関数型っのがどういう定義かは分からないけれど、
HaskellとPythonを比べると、パターンマッチが
なくて再帰が書きにくいと感じたり、
基本破壊的だから、わざわざ非破壊で書くのが
めんどくさいと感じる。
内包表記は似ていて良いかな。
HaskellとPythonを比べると、パターンマッチが
なくて再帰が書きにくいと感じたり、
基本破壊的だから、わざわざ非破壊で書くのが
めんどくさいと感じる。
内包表記は似ていて良いかな。
672デフォルトの名無しさん
2018/01/19(金) 19:12:49.43ID:ih0w0grk Schemeのマクロ定義でパターンマッチを使えるがすごい不人気だったよ
おそらくパターンマッチのアルゴリズムが透けて見えないと人気出ないよ
おそらくパターンマッチのアルゴリズムが透けて見えないと人気出ないよ
673デフォルトの名無しさん
2018/01/20(土) 08:12:20.84ID:hxs4OOGh うちのプログラマは大半がコトリンに移ったのでわしらラストを使うことにした
674デフォルトの名無しさん
2018/01/20(土) 15:07:10.20ID:TIRmwaq4 イムータムルのない言語は全て糞
675デフォルトの名無しさん
2018/01/20(土) 16:54:37.17ID:TgcSeHcI 関数型言語のパターンマッチって理論的な裏付けってあるんだろうか
676デフォルトの名無しさん
2018/01/20(土) 17:28:38.29ID:JZVVUERo 理論的てのが分からんけど、例えばリストを引数にとる関数なら、
空リストとSuccの場合を定義しとけば、帰納的に任意のリストについての適用結果が求められる、
とかそういうの?
空リストとSuccの場合を定義しとけば、帰納的に任意のリストについての適用結果が求められる、
とかそういうの?
677デフォルトの名無しさん
2018/01/20(土) 18:09:55.87ID:grrE5KFF 評価順序とかモチっと低いレイヤーでの動作規定ってことでないの?
ABIレベルでのさ。
ABIレベルでのさ。
678デフォルトの名無しさん
2018/01/20(土) 18:18:48.11ID:JZVVUERo もしかして、あ氏?
だとしたら、お久しぶりです。
だとしたら、お久しぶりです。
679デフォルトの名無しさん
2018/01/20(土) 20:48:41.14ID:I76mD3dR680デフォルトの名無しさん
2018/01/20(土) 20:52:07.08ID:4frS9VE4 >>679
単なる場合分けだから裏付けもクソもない
単なる場合分けだから裏付けもクソもない
681デフォルトの名無しさん
2018/01/20(土) 21:02:06.68ID:4frS9VE4 補足
パターンマッチは場合分け、つまり条件分岐そのものであり、
通常はそれ自体が原始的な計算原理の一つとして定義されるってことだぞ
だから裏付けなんぞ必要ない
パターンマッチは場合分け、つまり条件分岐そのものであり、
通常はそれ自体が原始的な計算原理の一つとして定義されるってことだぞ
だから裏付けなんぞ必要ない
682デフォルトの名無しさん
2018/01/20(土) 21:09:03.16ID:zaN+pP6E 学術的なことは分からないけども、静的型のパターンマッチは網羅性を
コンパイル時にチェックしてくれることが多くて
それが凄くありがたい
動的型言語にパターンマッチを持って来ても上手くいかないのは、
上のメリットが得られないからでは?
コンパイル時にチェックしてくれることが多くて
それが凄くありがたい
動的型言語にパターンマッチを持って来ても上手くいかないのは、
上のメリットが得られないからでは?
683デフォルトの名無しさん
2018/01/20(土) 21:28:06.72ID:L/NwSAXQ >>679
上の人が書いてるように、ただの場合分けだと思う。ただ、>>682の人も書いてますが、本当に網羅しているか、を考えると理論が出てくる気がする。
定義域の型が、型コンストラクタで定義されてれば、そいつら全てについて場合分けする、
で、そいつらも型コンストラクタが入ってれば、、てのを続けていけば、全てについて網羅的な場合分けが出来る。
言葉だとわかりにくいですが、Agdaの動画を見るといいと思います。
定理を証明するのに、上の場合分けを考慮する必要があって(漏れたら困りますよね?)、
実際EmacsのAgdaモードだとそういうのを勝手に展開してくれるコマンドがあり、
ゲーム感覚で証明してく感じ。
で、カリーハワード対応を考えると、関数の定義も結局は同じで、実際同じコマンドを使って進めてくことになる。その流れでやれば、後で漏れてる云々は問題にならない。
こんな感じですかね?
上の人が書いてるように、ただの場合分けだと思う。ただ、>>682の人も書いてますが、本当に網羅しているか、を考えると理論が出てくる気がする。
定義域の型が、型コンストラクタで定義されてれば、そいつら全てについて場合分けする、
で、そいつらも型コンストラクタが入ってれば、、てのを続けていけば、全てについて網羅的な場合分けが出来る。
言葉だとわかりにくいですが、Agdaの動画を見るといいと思います。
定理を証明するのに、上の場合分けを考慮する必要があって(漏れたら困りますよね?)、
実際EmacsのAgdaモードだとそういうのを勝手に展開してくれるコマンドがあり、
ゲーム感覚で証明してく感じ。
で、カリーハワード対応を考えると、関数の定義も結局は同じで、実際同じコマンドを使って進めてくことになる。その流れでやれば、後で漏れてる云々は問題にならない。
こんな感じですかね?
684デフォルトの名無しさん
2018/01/20(土) 22:20:04.44ID:4frS9VE4 >>682
動的言語はデータクラスをほとんど使わず、辞書や配列を生で扱うことが多いからじゃないかな
型で分岐するケースがそもそも少ないし、when Some a みたいにパターンマッチと同時に要素を抽出したくても抽出の仕方が定義されていない
動的言語はデータクラスをほとんど使わず、辞書や配列を生で扱うことが多いからじゃないかな
型で分岐するケースがそもそも少ないし、when Some a みたいにパターンマッチと同時に要素を抽出したくても抽出の仕方が定義されていない
685デフォルトの名無しさん
2018/01/20(土) 23:10:12.11ID:fmAc02d6686デフォルトの名無しさん
2018/01/21(日) 00:17:54.03ID:DgAEmkFM パターンマッチで変数にバインドするところとかあれってどう還元できんですかね?
687デフォルトの名無しさん
2018/01/21(日) 01:01:46.61ID:PzzAcO+j ・頭文字が大文字ならコンストラクタ (引数0個以上)
・そうでなければ変数 (引数なし)
少なくともこの仕様を守れば動的言語でもパターンマッチできるよ
・そうでなければ変数 (引数なし)
少なくともこの仕様を守れば動的言語でもパターンマッチできるよ
688デフォルトの名無しさん
2018/01/21(日) 01:02:49.35ID:2R9CDqfY 難しく考える必要はない
タプルは関連する複数の値をまとめて扱ってるだけ
レコードはタプルに型名というラベル値が付いただけ
型によるパターンマッチはその型名で条件分岐してるだけ
変数へのバインドはタプルの特定の要素の値にに別名を付けただけ
タプルは関連する複数の値をまとめて扱ってるだけ
レコードはタプルに型名というラベル値が付いただけ
型によるパターンマッチはその型名で条件分岐してるだけ
変数へのバインドはタプルの特定の要素の値にに別名を付けただけ
689デフォルトの名無しさん
2018/01/21(日) 01:37:10.13ID:kGWmn81W つまり・・・どういうことだってばよ?
690デフォルトの名無しさん
2018/01/21(日) 06:13:50.88ID:pnNTWTyQ >>682
動的言語どうこうではなく、オブジェクト指向の情報隠蔽とパターンマッチの相性が悪い。
アクセス制御をかいくぐってデータ構造にマッチさせるぐらいなら
オブジェクトを受け取ってからメソッド叩いたり条件分岐したほうがマシ。
動的言語どうこうではなく、オブジェクト指向の情報隠蔽とパターンマッチの相性が悪い。
アクセス制御をかいくぐってデータ構造にマッチさせるぐらいなら
オブジェクトを受け取ってからメソッド叩いたり条件分岐したほうがマシ。
691デフォルトの名無しさん
2018/01/21(日) 10:42:33.20ID:kGWmn81W >>690
SuccessとFailをパターンマイッチングするんじゃなくて
class Success implements Resultと
class Fail implements Resultみたいにしろ
ってこと?
SuccessとFailをパターンマイッチングするんじゃなくて
class Success implements Resultと
class Fail implements Resultみたいにしろ
ってこと?
692デフォルトの名無しさん
2018/01/21(日) 11:06:54.37ID:I3ORKf0i 本物のオブジェクト指向はTrueクラスとFalseクラスを使う
Bool &True::ifTrue(Block f) {f(); return this;}
Bool &True::ifFalse(Block f) {return this;}
Bool &False::ifTrue(Block f) {return this;}
Bool &False::ifFalse(Block f) {f(); return this;}
Bool &True::ifTrue(Block f) {f(); return this;}
Bool &True::ifFalse(Block f) {return this;}
Bool &False::ifTrue(Block f) {return this;}
Bool &False::ifFalse(Block f) {f(); return this;}
693デフォルトの名無しさん
2018/01/21(日) 11:22:08.22ID:1jbGMztY こういうときオブジェクト指向ってアホの自慰っぽいなと思う
694デフォルトの名無しさん
2018/01/21(日) 12:05:31.75ID:kGWmn81W 全てのif文を消し去るのです
695デフォルトの名無しさん
2018/01/21(日) 13:37:58.84ID:I3ORKf0i その次の世代はtemplateを使いvirtualを消し去る
だからifが復活
だからifが復活
696デフォルトの名無しさん
2018/01/21(日) 14:30:35.35ID:kGWmn81W >>695
はいサイクリングマチカル複雑度増加
はいサイクリングマチカル複雑度増加
697デフォルトの名無しさん
2018/01/21(日) 23:54:04.18ID:U0xKcFDq 多次元配列と第一級関数をサポートしている静的言語ってなんかあったっけ?
698デフォルトの名無しさん
2018/01/22(月) 00:18:19.80ID:WYTiMnwL C#
699デフォルトの名無しさん
2018/01/22(月) 00:18:46.23ID:7qCCLtD1 サポートするの定義が曖昧すぎる。
700デフォルトの名無しさん
2018/01/22(月) 00:28:37.30ID:+fzK3Dih そうかC#があったか。ありがとナス
701デフォルトの名無しさん
2018/01/24(水) 05:54:32.12ID:V1qhcEkf >>697
それサポートしてない言語って何があるの?
それサポートしてない言語って何があるの?
702デフォルトの名無しさん
2018/01/24(水) 10:06:55.58ID:Gs9CrZMb >>701
多次元配列サポートしてる言語なんて他にはFortran, R, Python, Julia, Racketくらいしか思いつかない
第一級関数は最近増えて来てるけどFortranみたいな古い言語はだいたいサポートしてない
多次元配列サポートしてる言語なんて他にはFortran, R, Python, Julia, Racketくらいしか思いつかない
第一級関数は最近増えて来てるけどFortranみたいな古い言語はだいたいサポートしてない
703デフォルトの名無しさん
2018/01/24(水) 10:13:41.67ID:apJvYiuW >>702
多次元配列サポートすると何の役に立つの?
多次元配列サポートすると何の役に立つの?
704デフォルトの名無しさん
2018/01/24(水) 10:30:59.45ID:Gs9CrZMb705デフォルトの名無しさん
2018/01/24(水) 10:44:28.83ID:tYoa+WgF サポートてのは、数値計算でよく使う引数が2の関数と、そういう関数とと中置演算子との間の糖衣構文が標準でオーバーロード気味に存在するってことですかね?
706702
2018/01/24(水) 10:59:06.24ID:J/V7RjN6 >>704
Racket挙げてるし中置演算子は重要度低いけど、よく使う関数はチューニングされたものを置いておいて欲しいな
Numpyだって標準ライブラリじゃないし、最悪標準ライブラリじゃなくてもいいけど、「数値計算するなら常識的に考えてこれ」という一つに定まっていてほしいな。
あるライブラリはEigenに依存しているが他のあるライブラリはublasに依存してるみたいなのはやめて欲しい
Racket挙げてるし中置演算子は重要度低いけど、よく使う関数はチューニングされたものを置いておいて欲しいな
Numpyだって標準ライブラリじゃないし、最悪標準ライブラリじゃなくてもいいけど、「数値計算するなら常識的に考えてこれ」という一つに定まっていてほしいな。
あるライブラリはEigenに依存しているが他のあるライブラリはublasに依存してるみたいなのはやめて欲しい
708デフォルトの名無しさん
2018/01/24(水) 11:04:32.91ID:RrrJ1nlK709デフォルトの名無しさん
2018/01/24(水) 11:09:12.83ID:J/V7RjN6 第一級関数のことかな?
多次元配列はレアだよ
多次元配列はレアだよ
710デフォルトの名無しさん
2018/01/24(水) 11:24:52.80ID:veFPPCA3 Pythonは多次元インデックスをオーバーロードできるけど組み込みの多次元配列は無い
PythonレベルのサポートでいいならKotlinも同等だね
PythonレベルのサポートでいいならKotlinも同等だね
711デフォルトの名無しさん
2018/01/24(水) 11:58:57.43ID:apJvYiuW そういえばExcel方眼紙もある意味二次元をサポートしてるな
Excelの異常な人気の原因はそこか
Excelの異常な人気の原因はそこか
712デフォルトの名無しさん
2018/01/24(水) 19:16:29.18ID:CULWU8L2 義務教育に向けて親もプログラミングやっときたい、どれが良い?
Pythonとかよく目にするけど、と聞かれた。
どう答える?
Pythonとかよく目にするけど、と聞かれた。
どう答える?
713デフォルトの名無しさん
2018/01/24(水) 19:30:37.89ID:D4W5cGwF 相手が挙げて来た言語のメリットを適当に言ってそのまま勧めれば良い
親が教えるためにやる言語なんて何でも良いし、違いがわかる頃には子供は卒業してる
選ぶのも面倒くさい
親が教えるためにやる言語なんて何でも良いし、違いがわかる頃には子供は卒業してる
選ぶのも面倒くさい
714デフォルトの名無しさん
2018/01/24(水) 19:50:08.15ID:N2tfbGLJ715デフォルトの名無しさん
2018/01/24(水) 20:27:01.77ID:0VEJNLN9716デフォルトの名無しさん
2018/01/24(水) 20:29:15.40ID:c9tmIiAF 子供にはScratchをやらせることになるらしいから、親もScratchをやればいいじゃん
>>712
やはり再帰的思考が勘所かと考えていますので、scheme をお勧めしようかと思っています
やはり再帰的思考が勘所かと考えていますので、scheme をお勧めしようかと思っています
718デフォルトの名無しさん
2018/01/25(木) 01:24:29.68ID:mR4+Kf/H719デフォルトの名無しさん
2018/01/25(木) 02:32:13.16ID:uqKgsWDy720デフォルトの名無しさん
2018/01/25(木) 12:45:10.82ID:R+9hEl/X >>711
excelは関数型言語だ、と言う人々も居るくらいだからな(笑)
excelは関数型言語だ、と言う人々も居るくらいだからな(笑)
721デフォルトの名無しさん
2018/01/25(木) 14:09:07.50ID:ArcwQAgj Excelはビジュアルリアクティブプログラミング環境と言えばまあ間違ってはないんだけど
二次元配列以外の構造の扱いが難しすぎて、学習用にしてしまうと
他のデータ構造を学ぶ機会がないまま何でも二次元配列に落としこむ悪癖がついてしまいそうで
二次元配列以外の構造の扱いが難しすぎて、学習用にしてしまうと
他のデータ構造を学ぶ機会がないまま何でも二次元配列に落としこむ悪癖がついてしまいそうで
722デフォルトの名無しさん
2018/01/25(木) 14:31:25.81ID:NsBjyJ7C >>721
人間が無理なく扱えるデータは二次元の表が限界なんだよ
考えてみろ
お前がよく使う構造体やクラスのリストや辞書は実質二次元の表だろ
オブジェクト指向では直接深く階層掘ったアクセスは嫌われるだろ?
なんだかんだ格好いい理屈を付けても、結局人間にはExcelのデータ構造が馴染むんだよ
人間が無理なく扱えるデータは二次元の表が限界なんだよ
考えてみろ
お前がよく使う構造体やクラスのリストや辞書は実質二次元の表だろ
オブジェクト指向では直接深く階層掘ったアクセスは嫌われるだろ?
なんだかんだ格好いい理屈を付けても、結局人間にはExcelのデータ構造が馴染むんだよ
723デフォルトの名無しさん
2018/01/25(木) 14:38:39.64ID:ArcwQAgj724デフォルトの名無しさん
2018/01/25(木) 14:41:15.02ID:NsBjyJ7C >>723
再帰なんか同じ表の行番号を持たせるだけだろ
再帰なんか同じ表の行番号を持たせるだけだろ
725デフォルトの名無しさん
2018/01/25(木) 17:16:48.70ID:sWzOL5fe 3次元以上を汎用に使おうとするとSQLみたいだったり tensor flow だったり
かなりめんどくさいインターフェイスになるのはしゃーない。
かなりめんどくさいインターフェイスになるのはしゃーない。
726デフォルトの名無しさん
2018/01/25(木) 17:55:47.33ID:R+9hEl/X まぁ、Haskellで作られたものより、Excelで作られたモノのほうが多いしな(笑)
純関数型(笑)
純関数型(笑)
727デフォルトの名無しさん
2018/01/25(木) 20:01:29.48ID:0RuyxExF >>719
このようなtypoを防ぐためにも強い型付けが必要なんだよ
このようなtypoを防ぐためにも強い型付けが必要なんだよ
729デフォルトの名無しさん
2018/01/25(木) 22:42:04.62ID:uaT/xfzY flake8を使えば
730デフォルトの名無しさん
2018/01/26(金) 01:29:50.06ID:2fuI1BST headerをincludeしてチェックする言語は簡単だけど
コンパイル済みのライブラリの中身を見て名前をチェックする言語は大変そうだ
コンパイル後も情報を全部残しておかないといけない
コンパイル済みのライブラリの中身を見て名前をチェックする言語は大変そうだ
コンパイル後も情報を全部残しておかないといけない
731デフォルトの名無しさん
2018/01/26(金) 16:21:27.98ID:Zz9xFin2 変数宣言を省略できる機能(スペルミスが検出できない)と、型付けは別だよね?
昔のFortranやBASICは変数はいきなり使っていいけど名前で型が決まる静的型だったし
昔のFortranやBASICは変数はいきなり使っていいけど名前で型が決まる静的型だったし
732デフォルトの名無しさん
2018/01/26(金) 16:36:58.42ID:G7ZCkEjP 宣言がない変数は、省略ではなく他のファイルで宣言している可能性がある
そのファイルをincludeするか、全てのファイルを検索する必要がある
そのファイルをincludeするか、全てのファイルを検索する必要がある
733デフォルトの名無しさん
2018/01/27(土) 13:04:44.52ID:7uBpZq93 レベル下がったなぁ
734デフォルトの名無しさん
2018/01/27(土) 14:31:34.34ID:fjEoblON 下がってから言っても遅いな
レベル高かった頃に、なにこれ高いって評価できる奴が勝つ
レベル高かった頃に、なにこれ高いって評価できる奴が勝つ
735デフォルトの名無しさん
2018/01/27(土) 14:40:54.49ID:7K+kXdeY まぁ、その時から無駄なつっかかりしかできない奴ばっかだったし仕方ないんだろうな。
今更option explicitじみた話に戻るとは。
今更option explicitじみた話に戻るとは。
736デフォルトの名無しさん
2018/01/27(土) 22:13:06.80ID:RNgYnDaT >>734
天井Lみたいなこと言うな
天井Lみたいなこと言うな
737デフォルトの名無しさん
2018/01/28(日) 15:51:11.09ID:CWAHXL7y 自分で書いたコードが三ヵ月後に読めないっていうやつは素人
プロは三ヵ月後の記憶喪失を織り込んでる
プロは三ヵ月後の記憶喪失を織り込んでる
738デフォルトの名無しさん
2018/01/28(日) 23:40:40.83ID:ZERk9zo5 保守受注独占するために汚くするんやぞ
739デフォルトの名無しさん
2018/01/29(月) 22:16:09.55ID:4480+Jxl そういう足を引っ張る人には保守受注の代わりに
ベーシックインカムをあげたらいいんじゃないかと言われている
足を引っ張る悪人より善良な怠け者の方がいい
ベーシックインカムをあげたらいいんじゃないかと言われている
足を引っ張る悪人より善良な怠け者の方がいい
740デフォルトの名無しさん
2018/01/30(火) 01:45:49.07ID:ZcZnTiUX しょーもない理想論はいらんねん
こっちはきっちり世間様に仕事回してんねんで
頭の悪いガキは黙っとき
こっちはきっちり世間様に仕事回してんねんで
頭の悪いガキは黙っとき
741デフォルトの名無しさん
2018/01/30(火) 01:47:45.52ID:ZcZnTiUX ソースがきれい → オタクの自己満足
ソースがきたない → 工数取れて残業代も出る、みんなニッコリ
これが現実やで
ソースがきたない → 工数取れて残業代も出る、みんなニッコリ
これが現実やで
742デフォルトの名無しさん
2018/01/30(火) 10:52:36.78ID:2Eamtv1n そんなことしてるから他国の技術に駆逐されるんだよ。。
743デフォルトの名無しさん
2018/01/30(火) 14:43:26.40ID:xaKIrtPB その理屈だと、まるで必要もない次世代言語で書くやつみたいだな。
汚いソース書くやつは。
汚いソース書くやつは。
744デフォルトの名無しさん
2018/01/31(水) 23:31:38.87ID:Rp2Mauf0 次世代言語で書くだけならいいんだよ
故意に汚くするとはいってないから、改善する可能性がある
故意とただの偶然とでは罪の重さが違う
故意に汚くするとはいってないから、改善する可能性がある
故意とただの偶然とでは罪の重さが違う
745デフォルトの名無しさん
2018/02/01(木) 08:43:21.74ID:AVafL46K 故意にその言語で書いてる以上、もう偶然でもなんでもないだろ。
ちゃんとその言語のメリット、デメリット含めて布教してから使うべきだと思うが。
ちゃんとその言語のメリット、デメリット含めて布教してから使うべきだと思うが。
746デフォルトの名無しさん
2018/02/01(木) 11:05:23.20ID:niJJgdbA ちゃんとする可能性があるならいい
その可能性をわざと排除するなら悪質
最初からそう言ってるんだろ
その可能性をわざと排除するなら悪質
最初からそう言ってるんだろ
747デフォルトの名無しさん
2018/02/01(木) 13:10:20.37ID:Bj9uVLC2 まあ大体がカスな開発体制に問題があるところに
新しい言語なら問題解決できる!
とかめちゃくちゃな広告が出回って導入、失敗っつークソパターンがここ20,30年の間繰り返されてるわけだからな。
新しい言語なら問題解決できる!
とかめちゃくちゃな広告が出回って導入、失敗っつークソパターンがここ20,30年の間繰り返されてるわけだからな。
748デフォルトの名無しさん
2018/02/01(木) 15:37:35.21ID:suqSmKNo749デフォルトの名無しさん
2018/02/03(土) 02:04:53.95ID:VC8JN1NA JSに依存するのはいいがGHCがな
もしもF#がGHCに依存していたら面倒臭いじゃないか
もしもF#がGHCに依存していたら面倒臭いじゃないか
750デフォルトの名無しさん
2018/02/12(月) 17:15:27.49ID:NkUQn5xe751デフォルトの名無しさん
2018/02/12(月) 17:16:33.56ID:NkUQn5xe752デフォルトの名無しさん
2018/02/14(水) 20:27:03.68ID:SwEfqZxS ASM.net
753デフォルトの名無しさん
2018/02/15(木) 23:40:47.93ID:yLr3787F clojure やれよ?
754デフォルトの名無しさん
2018/02/16(金) 00:35:29.80ID:JK/MGoqE755デフォルトの名無しさん
2018/02/18(日) 01:30:59.56ID:5P/pcqvC >751
これ初めて見た
これ初めて見た
756デフォルトの名無しさん
2018/02/18(日) 15:38:35.68ID:CW1UlThv なんかTypeScriptのジェネリクスがどんどん変態じみてきたんだけど、ジェネリクスってこういうもんなの?
これならgoに乗んなくていいなぁ
これならgoに乗んなくていいなぁ
757デフォルトの名無しさん
2018/02/18(日) 15:51:20.83ID:AYB00j0e >>756
欲求は際限なく広がって、そしてゴミの塊みたいな仕様になるもんだ。
ずっと前からTypeScriptは手段と目的をどっかで履き違えたと言ってたが、最近シャレになってない。
Goの割り切りは納得に値するよ。あったら便利なのは認めるけど。
Cppのtemplateみたいに、それだけでチューリング完全になってしまう前に、最初から入れない、やるならgenerateで別立てで勝手にやれと言う割り切りしたのは英断だと思う。
欲求は際限なく広がって、そしてゴミの塊みたいな仕様になるもんだ。
ずっと前からTypeScriptは手段と目的をどっかで履き違えたと言ってたが、最近シャレになってない。
Goの割り切りは納得に値するよ。あったら便利なのは認めるけど。
Cppのtemplateみたいに、それだけでチューリング完全になってしまう前に、最初から入れない、やるならgenerateで別立てで勝手にやれと言う割り切りしたのは英断だと思う。
758デフォルトの名無しさん
2018/02/18(日) 17:25:12.30ID:CW1UlThv >>757
ジェネリクス関連のエラーメッセージは本当に意味がわかんないよね。
ユーザー視点ではimmutable.jsとかでも補完が効くのは便利になっていいんだけど、
いざ型関連エラーが出た時にエラーメッセージから原因を予測するのが困難なんだよね。
rustもあんな感じなの?
正直TypeScriptはエラーメッセージをわかりやすくする方向に軌道修正頼んます。
ジェネリクス関連のエラーメッセージは本当に意味がわかんないよね。
ユーザー視点ではimmutable.jsとかでも補完が効くのは便利になっていいんだけど、
いざ型関連エラーが出た時にエラーメッセージから原因を予測するのが困難なんだよね。
rustもあんな感じなの?
正直TypeScriptはエラーメッセージをわかりやすくする方向に軌道修正頼んます。
759デフォルトの名無しさん
2018/02/18(日) 18:16:19.28ID:WV1p31YW >>758
変性注釈とか、やりたいことはわかるし、なぜ必要かもわかるが、一方でjsとどんどん乖離していって、jsのプロジェクトと繋げるときに結局any使うことになったり、グダグダも良いところだと思う。
TSだけでもの作るんなら、良いと思うが、そうなるとJavaScriptにコンパイルできる必要もなく、逆に早くwasmなんかに対応しろとか、ネイティブにTSの良いところを保ったまま実行できる環境出せとか、色々文句が言いたいけど、
全部ほったらかしにされてるからな。
ずーっと言語の改良してる。
変性注釈とか、やりたいことはわかるし、なぜ必要かもわかるが、一方でjsとどんどん乖離していって、jsのプロジェクトと繋げるときに結局any使うことになったり、グダグダも良いところだと思う。
TSだけでもの作るんなら、良いと思うが、そうなるとJavaScriptにコンパイルできる必要もなく、逆に早くwasmなんかに対応しろとか、ネイティブにTSの良いところを保ったまま実行できる環境出せとか、色々文句が言いたいけど、
全部ほったらかしにされてるからな。
ずーっと言語の改良してる。
760デフォルトの名無しさん
2018/02/18(日) 18:37:05.69ID:Ct2k6iqr 一方的にjsのライブラリを使用する分には問題ないだろうし、その資産にただ乗りできることこそ
jsとの相互運用性を維持する理由だろう。
言語仕様としては奇麗だけどライブラリが揃わなくて実用性がいまいち、みたいになるよりは。
jsとの相互運用性を維持する理由だろう。
言語仕様としては奇麗だけどライブラリが揃わなくて実用性がいまいち、みたいになるよりは。
761デフォルトの名無しさん
2018/02/18(日) 19:25:55.39ID:WV1p31YW >>760
jsのライブラリ側が自由な感じのライブラリだと定義ファイルが無茶苦茶ややこしいものになったりするし、なかなか微妙だけどな。
ライブラリが揃わなくてイマイチ、は確かに無いか。ほとんどタダ乗り出来るからなぁ。
jsのライブラリ側が自由な感じのライブラリだと定義ファイルが無茶苦茶ややこしいものになったりするし、なかなか微妙だけどな。
ライブラリが揃わなくてイマイチ、は確かに無いか。ほとんどタダ乗り出来るからなぁ。
762デフォルトの名無しさん
2018/02/18(日) 22:15:41.08ID:+Qsqi9wm >>761
せめて関数のオーバーロード定義みたいなことが出来ればコードが整理しやすくなると思うんだよね。
つまり
export function h(name, attributes /*, ...rest*/) {
// 省略
return typeof name === "function"
? name(attributes || {}, children)
: {
nodeName: name,
attributes: attributes || {},
children: children,
key: attributes && attributes.key
}
}
ってあった時に
export function h(name: string, attributes:obj /*, ...rest*/) {}
export function h(nextFunc: (attributes:obj)=>void, attributes:obj /*, ...rest*/) {}
みたく出来れば型定義自体も綺麗にできる気がする。
でも今のTypeScriptってこれできんよね。
せめて関数のオーバーロード定義みたいなことが出来ればコードが整理しやすくなると思うんだよね。
つまり
export function h(name, attributes /*, ...rest*/) {
// 省略
return typeof name === "function"
? name(attributes || {}, children)
: {
nodeName: name,
attributes: attributes || {},
children: children,
key: attributes && attributes.key
}
}
ってあった時に
export function h(name: string, attributes:obj /*, ...rest*/) {}
export function h(nextFunc: (attributes:obj)=>void, attributes:obj /*, ...rest*/) {}
みたく出来れば型定義自体も綺麗にできる気がする。
でも今のTypeScriptってこれできんよね。
763デフォルトの名無しさん
2018/02/18(日) 22:19:58.51ID:+Qsqi9wm あと詳しい人に聞きたいんだけどやっぱりジェネリクス一つとっても
言語によって全然仕様が違うのかね?
だとしたらGoはコードジェネレートと組み合わせも考慮したちょうどいい便利さの
ジェネリクスというのも考えていて実装を見送ってるのかも。
でもGoにはそれ以前にnull安全を実装してほしい気がするが。
レシーバがnullの可能性があったりnull周りに罠があるんだよねGoは
言語によって全然仕様が違うのかね?
だとしたらGoはコードジェネレートと組み合わせも考慮したちょうどいい便利さの
ジェネリクスというのも考えていて実装を見送ってるのかも。
でもGoにはそれ以前にnull安全を実装してほしい気がするが。
レシーバがnullの可能性があったりnull周りに罠があるんだよねGoは
764デフォルトの名無しさん
2018/02/18(日) 22:47:38.32ID:Ct2k6iqr >>762
オーバーロードってまさにそんな感じでできた気がするが。
オーバーロードってまさにそんな感じでできた気がするが。
765デフォルトの名無しさん
2018/02/18(日) 23:30:02.62ID:/vdt0GUK ジェネリクスは途中から入れるようなもんじゃないと思うがね
型自体はフラットな構造で、階層構造はHaskellみたいに型の境界(型クラス)として作ると綺麗にまとまりやすい
型≒クラスで、型自体に階層構造を作ってるような言語だと、ジェネリクスの使い方が面倒よ
Javaの<T extends ClassFoo>とかC#のin/outとかは元の型システムに合わせて入れないといけない面倒な部分
TSの元々の型システムはよく知らないけど、ダックタイピングできるならジェネリクス入れる必要がないし、
クラスがあったり型に階層構造があるなら面倒なのはしょうがない
型自体はフラットな構造で、階層構造はHaskellみたいに型の境界(型クラス)として作ると綺麗にまとまりやすい
型≒クラスで、型自体に階層構造を作ってるような言語だと、ジェネリクスの使い方が面倒よ
Javaの<T extends ClassFoo>とかC#のin/outとかは元の型システムに合わせて入れないといけない面倒な部分
TSの元々の型システムはよく知らないけど、ダックタイピングできるならジェネリクス入れる必要がないし、
クラスがあったり型に階層構造があるなら面倒なのはしょうがない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★3 [BFU★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 【サッカー】日本代表、FIFAランキング“4位”の強豪イングランドとの対戦が正式決定! 来年3月に聖地ウェンブリーで激突へ [久太郎★]
- 日本国のトップとして子どもがいないとか、バツイチとか、娘が外国人と結婚したってのは自称愛国者的にはどうなの? [289765331]
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ4🧪
- 近所にびっくりドンキーがないんだけど!!!
- 【安倍晋三】中国船4隻が領海侵入 [828897501]
- 【すこん部🏡】白上フブキ🦊配信中❗【ホロライブ▶】
- 自民党、ついに「断続的なレーダー照射」に発言後退。ネトウヨどうすんのこれ? [469534301]
