X



次世代言語Part8[Haskell Rust Kotlin TypeScript]
■ このスレッドは過去ログ倉庫に格納されています
0621デフォルトの名無しさん
垢版 |
2018/01/07(日) 22:52:11.69ID:+RrxdpdM
そいつは例のあDHDだろう。Haskellユーザーがいないこのスレで触ったこともないHaskellを叩き続けるガイジだから触れない方が良い
0622デフォルトの名無しさん
垢版 |
2018/01/07(日) 22:59:52.18ID:L6/hrCeD
文句なしの打っ千切り糞言語賞ナンバーワンはPから始まるあの言語だよなぁ
0625デフォルトの名無しさん
垢版 |
2018/01/08(月) 00:10:42.98ID:vJNmJMtg
ブレストは頭の中だけで行動が伴わないので批判しなくていい
厳しく批判されるのは実行に移そうとした時
0626デフォルトの名無しさん
垢版 |
2018/01/08(月) 02:24:37.62ID:+UJAnfcM
マンセーしたきゃ勝手にすりゃいいじゃん。
現実で文句言われるよりここで言われる方がマシだろ。
0628デフォルトの名無しさん
垢版 |
2018/01/08(月) 13:31:41.59ID:ojmRQEAO
ネットは筆記試験のようなものだよ
筆記試験もネットと同じような批判をされて面接重視になった
0629デフォルトの名無しさん
垢版 |
2018/01/08(月) 14:51:35.25ID:isNCSjM0
>>627
おま環だろ?
0631デフォルトの名無しさん
垢版 |
2018/01/08(月) 20:27:12.48ID:TtlW0DEg
Elmってどうなんだろ。インスパイアされたhyperappとかいうのがあるけど。
新しいjsライブラリは結構TypeScriptサポートしていて嬉しい
0632デフォルトの名無しさん
垢版 |
2018/01/08(月) 22:54:56.01ID:e0/LavPD
全てのJSプロジェクトはTypeScriptにしろ

棒案件で立ち上げ時にクソバカの老害オッサンがJSでコード書き始めたせいで
どんだけ苦労したか
0633デフォルトの名無しさん
垢版 |
2018/01/08(月) 23:52:24.85ID:KF2MtXIW
TypeScriptは認めるがBabelはほんとやめてほしい
わざわざビルドを面倒にするだけの見返りはどう考えても無い
0634デフォルトの名無しさん
垢版 |
2018/01/09(火) 00:49:10.43ID:Eu2F6gCU
Babelないとjsxも書けないし新しい文法も使えないぞ
糞まみれの生JSに戻る気か?
0637デフォルトの名無しさん
垢版 |
2018/01/09(火) 17:11:58.74ID:MVMyukKY
>>636
それ理想的だね。型を最初からサポートしたほうが良い。
typescriptを中心に据えてオプションで型無しをサポートする方針にしたほうが処理性能向上に寄与する気がする。
あとnumber型を廃止して
0638デフォルトの名無しさん
垢版 |
2018/01/09(火) 18:53:23.55ID:dlYDsmgP
>>621
もう叩いてないぞ。
割と興味出てきたのに、誰も、ここが良い!を言わないからつまんねえのって思ってるだけだよ。
スレタイに入れたいだけじゃねえの?って。

正直、使ってみた感じは悪くないけど、この便利な言語でこういう事すると楽かな?みたいなのがあんまり思いつかんので、良いサンプルは見たいな。
GoのGoroutineやchanの気軽さとか、erlangのプロセスの考え方みたいなのとか。
0645デフォルトの名無しさん
垢版 |
2018/01/09(火) 23:27:20.37ID:MVMyukKY
>>641
linuxを、デスクトップ用途で使うならいいけどなぁ。
wafとかで革新的なやつとか無いのかね?
0652デフォルトの名無しさん
垢版 |
2018/01/16(火) 23:05:29.36ID:VmDdoWU7
関数型の後Pythonに戻ったら、それまでとも違うけど関数型でもないコードになった
0655デフォルトの名無しさん
垢版 |
2018/01/17(水) 10:57:56.45ID:9HqucL9D
lambdaが書きづらいからとか?
やっぱ関数型プログラミングはRubyのほうが強いのか
0656デフォルトの名無しさん
垢版 |
2018/01/17(水) 11:09:34.12ID:I48MtSJA
Rubyと比べてどうかは知らんけど、Pythonのデータ構造や文法ならいわゆるPythonicな書き方が書きやすく読みやすいので関数型特化する必要がないので、関数型には書きにくい
0657デフォルトの名無しさん
垢版 |
2018/01/17(水) 11:22:30.71ID:dt2TzLE6
なぜ関数型とRubyが、目的と手段なんですか
理想主義と現実主義ではだめなんですか
0659デフォルトの名無しさん
垢版 |
2018/01/17(水) 11:51:37.31ID:dt2TzLE6
言語の標本集合をさすんじゃないですか
現実の言語にはばらつきがありますが、平均すれば理論値に収束する筈だとか
0660デフォルトの名無しさん
垢版 |
2018/01/17(水) 13:21:41.39ID:VP9/FI9R
標本がどうのこうのじゃなくて
会話噛み合ってないだろってことだよ
頭でっかちさん
0663デフォルトの名無しさん
垢版 |
2018/01/17(水) 18:38:24.63ID:XaYj/w5S
>>658
ほんとにな。
ラムダ一つとったって型なし、型あり
型にしたって、型に依存する型、型に依存する項(関数など)、項に依存する型とか色々あるのに。
0665デフォルトの名無しさん
垢版 |
2018/01/17(水) 21:11:15.44ID:zdlnY+SA
>>653
書きにくいから、Python の公式文書では lambda で書いたコードを
手続き型の for ループへ書き換えることを推奨している

https://docs.python.jp/3/howto/functional.html
0666デフォルトの名無しさん
垢版 |
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/
0667デフォルトの名無しさん
垢版 |
2018/01/17(水) 22:01:34.45ID:jFkmgXk5
python のラムダの使い道ってほとんどがソートに渡す比較関数くらいだと思う。
0668デフォルトの名無しさん
垢版 |
2018/01/17(水) 22:47:35.07ID:I48MtSJA
世界的な認識のソースでも貼ってそうな場所にあるリンクが2chの別スレへのリンクで困惑している
0669デフォルトの名無しさん
垢版 |
2018/01/18(木) 05:27:53.26ID:zo82h2qj
Pythonあまり知らんけど、上のリンク見てて思ったのは、

1. 自分で高階関数を作れない(ラムダ式が利用できる関数が少ないと書いてある)
2. where節みたいなスコープの限定されたローカルな書き捨ての関数を用意する文法がない(読みにくいでしょ?とか書いてある)

この辺の縛りがあるからでないかい?
0671デフォルトの名無しさん
垢版 |
2018/01/18(木) 21:25:08.77ID:oG29giIx
関数型っのがどういう定義かは分からないけれど、
HaskellとPythonを比べると、パターンマッチが
なくて再帰が書きにくいと感じたり、
基本破壊的だから、わざわざ非破壊で書くのが
めんどくさいと感じる。

内包表記は似ていて良いかな。
0672デフォルトの名無しさん
垢版 |
2018/01/19(金) 19:12:49.43ID:ih0w0grk
Schemeのマクロ定義でパターンマッチを使えるがすごい不人気だったよ
おそらくパターンマッチのアルゴリズムが透けて見えないと人気出ないよ
0673デフォルトの名無しさん
垢版 |
2018/01/20(土) 08:12:20.84ID:hxs4OOGh
うちのプログラマは大半がコトリンに移ったのでわしらラストを使うことにした
0676デフォルトの名無しさん
垢版 |
2018/01/20(土) 17:28:38.29ID:JZVVUERo
理論的てのが分からんけど、例えばリストを引数にとる関数なら、
空リストとSuccの場合を定義しとけば、帰納的に任意のリストについての適用結果が求められる、
とかそういうの?
0677デフォルトの名無しさん
垢版 |
2018/01/20(土) 18:09:55.87ID:grrE5KFF
評価順序とかモチっと低いレイヤーでの動作規定ってことでないの?
ABIレベルでのさ。
0679デフォルトの名無しさん
垢版 |
2018/01/20(土) 20:48:41.14ID:I76mD3dR
>>676
そうそうそういうの
関数型ってって原理的にはあらゆるものが原始的な計算原理に還元できるものって理解してんだけど
パターンマッチはそういう裏付けあるのかなって疑問
0681デフォルトの名無しさん
垢版 |
2018/01/20(土) 21:02:06.68ID:4frS9VE4
補足
パターンマッチは場合分け、つまり条件分岐そのものであり、
通常はそれ自体が原始的な計算原理の一つとして定義されるってことだぞ
だから裏付けなんぞ必要ない
0682デフォルトの名無しさん
垢版 |
2018/01/20(土) 21:09:03.16ID:zaN+pP6E
学術的なことは分からないけども、静的型のパターンマッチは網羅性を
コンパイル時にチェックしてくれることが多くて
それが凄くありがたい

動的型言語にパターンマッチを持って来ても上手くいかないのは、
上のメリットが得られないからでは?
0683デフォルトの名無しさん
垢版 |
2018/01/20(土) 21:28:06.72ID:L/NwSAXQ
>>679
上の人が書いてるように、ただの場合分けだと思う。ただ、>>682の人も書いてますが、本当に網羅しているか、を考えると理論が出てくる気がする。

定義域の型が、型コンストラクタで定義されてれば、そいつら全てについて場合分けする、
で、そいつらも型コンストラクタが入ってれば、、てのを続けていけば、全てについて網羅的な場合分けが出来る。

言葉だとわかりにくいですが、Agdaの動画を見るといいと思います。

定理を証明するのに、上の場合分けを考慮する必要があって(漏れたら困りますよね?)、
実際EmacsのAgdaモードだとそういうのを勝手に展開してくれるコマンドがあり、
ゲーム感覚で証明してく感じ。

で、カリーハワード対応を考えると、関数の定義も結局は同じで、実際同じコマンドを使って進めてくことになる。その流れでやれば、後で漏れてる云々は問題にならない。

こんな感じですかね?
0684デフォルトの名無しさん
垢版 |
2018/01/20(土) 22:20:04.44ID:4frS9VE4
>>682
動的言語はデータクラスをほとんど使わず、辞書や配列を生で扱うことが多いからじゃないかな
型で分岐するケースがそもそも少ないし、when Some a みたいにパターンマッチと同時に要素を抽出したくても抽出の仕方が定義されていない
0686デフォルトの名無しさん
垢版 |
2018/01/21(日) 00:17:54.03ID:DgAEmkFM
パターンマッチで変数にバインドするところとかあれってどう還元できんですかね?
0687デフォルトの名無しさん
垢版 |
2018/01/21(日) 01:01:46.61ID:PzzAcO+j
・頭文字が大文字ならコンストラクタ (引数0個以上)
・そうでなければ変数 (引数なし)
少なくともこの仕様を守れば動的言語でもパターンマッチできるよ
0688デフォルトの名無しさん
垢版 |
2018/01/21(日) 01:02:49.35ID:2R9CDqfY
難しく考える必要はない
タプルは関連する複数の値をまとめて扱ってるだけ
レコードはタプルに型名というラベル値が付いただけ
型によるパターンマッチはその型名で条件分岐してるだけ
変数へのバインドはタプルの特定の要素の値にに別名を付けただけ
0690デフォルトの名無しさん
垢版 |
2018/01/21(日) 06:13:50.88ID:pnNTWTyQ
>>682
動的言語どうこうではなく、オブジェクト指向の情報隠蔽とパターンマッチの相性が悪い。
アクセス制御をかいくぐってデータ構造にマッチさせるぐらいなら
オブジェクトを受け取ってからメソッド叩いたり条件分岐したほうがマシ。
0691デフォルトの名無しさん
垢版 |
2018/01/21(日) 10:42:33.20ID:kGWmn81W
>>690
SuccessとFailをパターンマイッチングするんじゃなくて
class Success implements Resultと
class Fail implements Resultみたいにしろ
ってこと?
0692デフォルトの名無しさん
垢版 |
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;}
0697デフォルトの名無しさん
垢版 |
2018/01/21(日) 23:54:04.18ID:U0xKcFDq
多次元配列と第一級関数をサポートしている静的言語ってなんかあったっけ?
0702デフォルトの名無しさん
垢版 |
2018/01/24(水) 10:06:55.58ID:Gs9CrZMb
>>701
多次元配列サポートしてる言語なんて他にはFortran, R, Python, Julia, Racketくらいしか思いつかない
第一級関数は最近増えて来てるけどFortranみたいな古い言語はだいたいサポートしてない
0704デフォルトの名無しさん
垢版 |
2018/01/24(水) 10:30:59.45ID:Gs9CrZMb
>>703
行列計算とか、その他数値的な解析がめちゃくちゃ書きやすくなる。
いわゆる数値解析や流行りの機械学習からゲーム開発まで、くまなくアルゴリズムが書きやすくなるぜ
0705デフォルトの名無しさん
垢版 |
2018/01/24(水) 10:44:28.83ID:tYoa+WgF
サポートてのは、数値計算でよく使う引数が2の関数と、そういう関数とと中置演算子との間の糖衣構文が標準でオーバーロード気味に存在するってことですかね?
0706702
垢版 |
2018/01/24(水) 10:59:06.24ID:J/V7RjN6
>>704
Racket挙げてるし中置演算子は重要度低いけど、よく使う関数はチューニングされたものを置いておいて欲しいな

Numpyだって標準ライブラリじゃないし、最悪標準ライブラリじゃなくてもいいけど、「数値計算するなら常識的に考えてこれ」という一つに定まっていてほしいな。
あるライブラリはEigenに依存しているが他のあるライブラリはublasに依存してるみたいなのはやめて欲しい
0707702
垢版 |
2018/01/24(水) 10:59:37.34ID:J/V7RjN6
間違えた。
安価は>>705
0708デフォルトの名無しさん
垢版 |
2018/01/24(水) 11:04:32.91ID:RrrJ1nlK
>>702
良かった。言語として普通にあるもんだと思ってたから
無いことを想像したこともなかった。
0710デフォルトの名無しさん
垢版 |
2018/01/24(水) 11:24:52.80ID:veFPPCA3
Pythonは多次元インデックスをオーバーロードできるけど組み込みの多次元配列は無い
PythonレベルのサポートでいいならKotlinも同等だね
0711デフォルトの名無しさん
垢版 |
2018/01/24(水) 11:58:57.43ID:apJvYiuW
そういえばExcel方眼紙もある意味二次元をサポートしてるな
Excelの異常な人気の原因はそこか
0712デフォルトの名無しさん
垢版 |
2018/01/24(水) 19:16:29.18ID:CULWU8L2
義務教育に向けて親もプログラミングやっときたい、どれが良い?
Pythonとかよく目にするけど、と聞かれた。

どう答える?
0713デフォルトの名無しさん
垢版 |
2018/01/24(水) 19:30:37.89ID:D4W5cGwF
相手が挙げて来た言語のメリットを適当に言ってそのまま勧めれば良い
親が教えるためにやる言語なんて何でも良いし、違いがわかる頃には子供は卒業してる
選ぶのも面倒くさい
0714デフォルトの名無しさん
垢版 |
2018/01/24(水) 19:50:08.15ID:N2tfbGLJ
>>712
まずはExcelのVLOOKUPを使いこなせるようになれ
次はVBAをやれ
でいいよ
教える側が何の役に立つのか分からないまま人に教えるなんて全く何の意味もない
0715デフォルトの名無しさん
垢版 |
2018/01/24(水) 20:27:01.77ID:0VEJNLN9
>>712
教育ママに特定の言語やらせて認識を固定させんな、むしろ子供に害悪だろ
数学パズルでもやらせとけ
0716デフォルトの名無しさん
垢版 |
2018/01/24(水) 20:29:15.40ID:c9tmIiAF
子供にはScratchをやらせることになるらしいから、親もScratchをやればいいじゃん
0717 ◆QZaw55cn4c
垢版 |
2018/01/24(水) 20:39:13.05ID:m3QL6muE
>>712
やはり再帰的思考が勘所かと考えていますので、scheme をお勧めしようかと思っています
0718デフォルトの名無しさん
垢版 |
2018/01/25(木) 01:24:29.68ID:mR4+Kf/H
>>712
Haskel
関数型を理解できないバカはプログラミングする資格も意味もなし
保守困難なウンコをひり出すだけのゴミは消えろ

と伝えてくれ
0719デフォルトの名無しさん
垢版 |
2018/01/25(木) 02:32:13.16ID:uqKgsWDy
>>718
Haskellの綴りも正しく書けない池沼は文章を書く資格も意味もなし
無意味なウンコをひり出すだけのゴミは消えろ
0721デフォルトの名無しさん
垢版 |
2018/01/25(木) 14:09:07.50ID:ArcwQAgj
Excelはビジュアルリアクティブプログラミング環境と言えばまあ間違ってはないんだけど
二次元配列以外の構造の扱いが難しすぎて、学習用にしてしまうと
他のデータ構造を学ぶ機会がないまま何でも二次元配列に落としこむ悪癖がついてしまいそうで
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況