X



次世代言語議論スレ[Go Rust Scala Haskell]第5世代 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0133デフォルトの名無しさん
垢版 |
2017/06/26(月) 08:29:22.47ID:O05czwZw
まあ、そんな事してるからHaskellは遅いんだろうなってのはある。
文字単位でバッファ目一杯入出力するけど、加工過程で分解して戻してってしてるんだし。
0134デフォルトの名無しさん
垢版 |
2017/06/26(月) 08:30:25.78ID:O05czwZw
>>132
なるけど、見かけのコードは行単位でも、バッファリングはそれとは別に行を越えて処理すると。
これは失礼。
0135デフォルトの名無しさん
垢版 |
2017/06/26(月) 08:37:10.13ID:O05czwZw
>>130
さらに馬鹿だ。。。
寝惚けてる。
部分適用し易いようにfsが第二引数だから

main = getArgs >>= mfput (fline reverse)

これだけで良いんだった。
0136デフォルトの名無しさん
垢版 |
2017/06/26(月) 08:44:37.68ID:e8nxxM8b
KotlinはJava標準ライブラリに対する拡張も上手い
Javaに背を向けたScalaとは違って、Java標準ライブラリの良いところ駄目なところを深く理解して
最小限でツボを押さえた拡張を入れてる
Scalaが一瞬で要らない子になったのも納得
0137デフォルトの名無しさん
垢版 |
2017/06/26(月) 08:51:02.56ID:O05czwZw
>>126
ついでに言えばPythonのは逆順でもメモリに溜め込まないはずで、大きなファイルだとPython使った方がいいってことになる。
でも、今時のスペックで問題になる程溜め込む場面自体が無い。
小説100冊分が1ファイルに入ってやっとちょっと気になるレベルだから。

なら、より短く書ける方がいい。
コンパイル遅いつっても書き捨てレベルなら毎度毎度定型的にPythonで書いてる時間で終わってる。

自分でライブラリ作ってからは完全にLL的な使い方はHaskellで良いやってなった。
素のままだとPythonのが良いけどね。
自分でライブラリ作るかどうかが決め手だった。
0138デフォルトの名無しさん
垢版 |
2017/06/26(月) 10:49:16.29ID:/blKTM20
複数のファイルを順番に読んでいって、特定の文字列が見つかるまで入力をそのまま出力する
文字列が見つかったら即終了

ってプログラムを、その自慢のライブラリで書いてみてよ
0140デフォルトの名無しさん
垢版 |
2017/06/26(月) 11:35:20.04ID:e8nxxM8b
行単位なのはダサいといいながら自分のライブラリはべったり行単位に依存してるのが笑いどころだな
結局行単位が便利だと思う人が多いからlineSequenceみたいなユーティリティが標準で用意されてるだけで、
やってることはunlines.f.linesと変わらんぞ
0141デフォルトの名無しさん
垢版 |
2017/06/26(月) 12:07:26.65ID:lPpre0LA
>>138
import System.Environment
import Data.List
import Myfunc

main = getArgs >>= (w:fs) ->
mfput (unlines.lines.last.(takeWhile (not.isInfixOf w)).inits) fs
0142デフォルトの名無しさん
垢版 |
2017/06/26(月) 12:56:36.59ID:+LDRBUDl
import System.Environment
import Data.List
import Myfunc

main = getArgs >>= (w:fs) ->
mfput ((++ "\n").last.(takeWhile (not.isInfixOf w)).inits) fs

unlines.lines要らんかった。

直後って書いてたから最初の検索文字列全部表示される前に終了かと思って上のコードにしたけど、最初の検索文字列表示した時点で終了なら、takeWhileをdropWhileにして、lastをheadにすれば良い。
0143デフォルトの名無しさん
垢版 |
2017/06/26(月) 14:59:05.87ID:a2h1pIHa
>>122 >>136
メインプロジェクトとしていろいろ試して選んだって感じなのね
androidの主力開発言語を急に乗り換える必要が発生したから当然だけど

(な?うざいだろ?by 某M社)
0145デフォルトの名無しさん
垢版 |
2017/06/29(木) 00:10:11.51ID:qxdPWLiZ
OCAMLを.netで記法(not構文)変えて作りましたって感じ>F#
冗長記法だとOCAML互換性高いし
0146デフォルトの名無しさん
垢版 |
2017/06/29(木) 17:11:41.82ID:wGgfLCtF
***SLAMO***

}

000-"F","TAP","0","1M","L","E-07"/0B"[9BA%]"^"2*73B"="0"/"9GA"
001-"Do"[[[%9DE=HUF%%!%$0B1OTU"NE"]]]<\b>
002-<<%!!!HNDEL%!0DAI@$7[1B]!0#!@>>
3000-{{1\B%HUF!0$$\%6/0Q\%6/GA[[7BU]]%9TE!%$en$}}


---

[[[C%%]]]
}

000-"5802"/"α"="0.1888412376155482"%en{
0147デフォルトの名無しさん
垢版 |
2017/06/30(金) 08:41:39.49ID:l6mEUTPw
F# は 関数型らしい抽象化機能※ を持っていないのが欠点
抽象化は .NET ( C# ) 互換の抽象クラスやインターフェースで実現することができる
でも型推論が効かなかったり null 安全でなかったりして辛い

※OCaml では構造的部分型やモジュール抽象化
Haskell では型クラスや型族のこと
0148デフォルトの名無しさん
垢版 |
2017/06/30(金) 20:40:32.58ID:2TVIteiy
型だけを見ればC#とF#は同じだろ
Haskellだって型だけを見れば他の言語で同じものは作れる
型だけを見るのが王道

逆に型を無視してHaskellにしかないものを強調するのは邪道だから
惑わされるなよ
0150デフォルトの名無しさん
垢版 |
2017/06/30(金) 21:24:26.03ID:2TVIteiy
Haskell並ならちゃんとしてるというのは本当か?
ちゃんとしてないから「Haskell並」や「Haskellよりマシ」と言い訳するんじゃないか
0151デフォルトの名無しさん
垢版 |
2017/06/30(金) 21:27:48.40ID:2Da2vksV
構造的部分型が「ちゃんとしてる」かは大いに疑問
あんなもんドカタITで使ったら悪夢だろ
0153デフォルトの名無しさん
垢版 |
2017/06/30(金) 22:00:33.62ID:onXQUvLg
>>150
静的型に限って言えばHaskellは上位でいいんじゃない?
強いて言うなら、TypeSynonymなクラスインスタンスぐらい言語標準で入れてほしいけど
0154デフォルトの名無しさん
垢版 |
2017/07/01(土) 09:18:35.85ID:1tCqnKMv
中途半端な奴だな
オレが一位だというならまだわかるが
Haskellが上位だという主張の何が嬉しいのか
0155デフォルトの名無しさん
垢版 |
2017/07/01(土) 10:27:16.17ID:yvgbUlYU
古い関数型言語関係の本だと、論理型言語が関数型言語の次の世代とか書いてて、まあ実際最近ワトソンやらペッパーやらAI関係で注目されてるのも論理型言語な訳で。
んじゃPrologはHaskellより使い易いんか?と勉強中。

早くもコレジャナイ感が。。。
もっと今時の論理型言語って無いんかな。
0156デフォルトの名無しさん
垢版 |
2017/07/01(土) 10:52:05.29ID:yAtrmQtL
Adaの型はどう?
0158デフォルトの名無しさん
垢版 |
2017/07/01(土) 22:05:29.59ID:wWo+lhH6
ケチつけたいだけのガガガガイジの相手すんなよな
0159デフォルトの名無しさん
垢版 |
2017/07/01(土) 22:57:47.40ID:1tCqnKMv
競争に勝つためにケチをつける自由がある
負ける自由もある
好きな方を選べ
0160デフォルトの名無しさん
垢版 |
2017/07/02(日) 00:11:43.12ID:gxDwTGkS
あ、そう言うこと言っちゃう?
おいらのライブラリ(>>84-85)の肝はmfputとmfwriteだが、結局他の言語で同じ様な関数作ってない。
当然だ。
Haskellは手続き型言語のforにあたるmap系の関数もそのまんま関数だし、Haskellだと自然に出力系は最後尾に追いやられるから関数化しやすいんだよ。

普通の言語は処理しながら出力する。
確かに効率が良い。
だが、再利用し難い。

今時のPCなら効率より再利用性のが重要だと思うんだ。
異論は認める。
0161デフォルトの名無しさん
垢版 |
2017/07/02(日) 01:00:22.98ID:C9YQ5tYh
大きなファイルを処理できないことで再利用性が大幅に低下するとは考えないのかな?
再利用の機会の多いものであれば少々手間をかけても効率を上げる価値があるケースもある
0162デフォルトの名無しさん
垢版 |
2017/07/02(日) 01:20:46.16ID:u1Wmv21R
LispとPrologの構文は汎用性があるからパーサーの再利用が重要だよ
文字列処理のような新しいパーサーを作る機能は重要じゃないよ

でも文字列の処理を書いてしまったらもう再利用を語る資格はないと思う
0163デフォルトの名無しさん
垢版 |
2017/07/02(日) 07:23:22.14ID:WUD7Q/xy
>>161
何度も書いた気はするんだが、遅延評価でメモリに溜め込んで出力してる様に見える処理も、
実際に火必要に応じて出力しながら処理してるから、.実際に溜め込んじゃうreverse使う様な処理じゃなければ大きなファイルも扱えるし、その気になればreverseな処理もCのfseek相当の関数もあるから克服出来る。
ただ、そこまで大きなファイルなら、Cで書いた方が速いの分かってるし適材適所。
0164デフォルトの名無しさん
垢版 |
2017/07/02(日) 08:20:48.27ID:uovtJU8N
>>163
それはちゃんと出力先があれば、の話なんだよな。
出力を怠るとメモリがお漏らししちゃうぞ。
0165デフォルトの名無しさん
垢版 |
2017/07/02(日) 09:08:10.92ID:hGhen2or
出力先がない状況って何ンゴ?
0168デフォルトの名無しさん
垢版 |
2017/07/02(日) 09:53:43.24ID:nuNQpba8
forに出来てgotoに出来ないことって何?
0173デフォルトの名無しさん
垢版 |
2017/07/02(日) 12:30:20.47ID:Ey9UZy2f
>>166
値を返せない。
関数合成出来ない。
0177デフォルトの名無しさん
垢版 |
2017/07/02(日) 15:37:42.58ID:Nl2/i6W2
pythonのyieldはStopIterationが気持ち悪い
ではnullを返せばいいかというとそれも気持ち悪い
値を返せない空気に逆らうのは楽じゃない
0178パシュー
垢版 |
2017/07/02(日) 16:23:07.20ID:JZu2jdmH
スレ違いであればすみません、どなたかわかる方いらっしゃればお願いします。

先日、営業電話があり、お宅のところはau光を利用してますよね?
→今まで、この手の電話で言った覚えが無い。ただ、au光は確かに利用・・・
何故、わかるのか問いただしたところ、相手からこちらの固定電話に電話するときや、
メールに送信するときの反応、時間、信号?跳ね返りの反応? でわかりますとの回答。
確かに先日、某サイトから携帯とセットでネット環境の見直しとして、
問い合わせはしましたが、果たして、相手からメールアドレスを
送信した時の反応や送信までの時間、
電話が繋がるまでの少しの時間での反応などで分かるものなのでしょうか?

ちなみに携帯の番号は教えてません。携帯であればドコモやauなどとあたりをつけることはわかるのですが…
どなたか教えて下さい!
0180デフォルトの名無しさん
垢版 |
2017/07/02(日) 18:06:59.55ID:O/UEQvVu
>>178
スレ違いどころか板違いだが、結論だけ言うとわからない
単に名簿屋から買いましたって言いづらいから、素人騙しでそう言ってるだけ
続きはヤフー知恵袋でやれ
0181デフォルトの名無しさん
垢版 |
2017/07/02(日) 21:50:57.08ID:19kDKEGS
>>174
yieldとか書く時点でダルい。
そんな速度変わらんのに、なんでそんな書かなあかんねん。
0182デフォルトの名無しさん
垢版 |
2017/07/02(日) 22:22:57.06ID:19kDKEGS
>>176
まあ若いと言えない年になりつつあって20代の頃に比べりゃ覚えが悪くなってる自覚はある。
それでもC/C++、VB(.net含む)、Java、C#、Python、Ruby、smalltalk、Delphi含むPascal、もちHaskellは割と使えるぞ。
なんと無く分かっただけなのはLisp、Prolog、Erlang。
関数論理型言語Curryはもうチョイメジャーになったら本格的に覚えたい。

でもな。
学習と挫折繰り返した末に到達したのは覚えた言語の数じゃないって事だ。
知るべきはアルゴリズムや文法じゃ無い。(いあ、後々覚えなきゃだが)
作りたいアプリに対する周辺知識。(ファイル構造だったり、アプリにしたい事象に対する知識)
0183デフォルトの名無しさん
垢版 |
2017/07/02(日) 22:26:25.12ID:19kDKEGS
あ、x86とARMのアセンブラもか。
0184デフォルトの名無しさん
垢版 |
2017/07/02(日) 22:31:49.24ID:19kDKEGS
てか、Haskellのお陰でクイックソートがやマージソートがどう言う動きしてんのか理解出来たんだよ。
そう言う意味じゃCやJavaのアルゴリズム本みたいにコード示して終わりじゃ無くて、超初心者向けのどう言う動きですって動きだけ説明してる本のが有用だわ。
それ読んでコード書けない程度の抽象的な考えが出来ない(おいらみたいな)奴はプログラマの才能無い。
0185デフォルトの名無しさん
垢版 |
2017/07/03(月) 00:03:55.72ID:Tx9mAztB
Haskellのinplace quicksortって可読性低くて冗長じゃん
Haskellerはあんなのが読みやすいの?

それとも、全く実用にならないquicksortのコードみて簡潔だと思っちゃったタイプ?
0186デフォルトの名無しさん
垢版 |
2017/07/03(月) 00:05:35.20ID:MHKU0t6b
再帰のクイックソートは理解しやすいからな
実用性はともかく
0187デフォルトの名無しさん
垢版 |
2017/07/03(月) 00:08:46.80ID:UYk8Gv77
>>185
うい。
TDNクイックソートで簡潔だと思ったタイプ。
遅いって分かっててもね。
動作さえ分かれば他の言語で書けるんじゃよ。
そしたら実用的になる。
LL的な使い方なら速度必要無いから、これ以上簡潔なものはない。
0188デフォルトの名無しさん
垢版 |
2017/07/03(月) 00:37:29.08ID:wW6TPWna
C のコードより haskell のクイックソートのが理解しやすいって
本気で言ってんの?
0189デフォルトの名無しさん
垢版 |
2017/07/03(月) 00:46:37.45ID:MHKU0t6b
妙なハードルつけてそれは本当の理解じゃないとかいうガイジ湧いてきたか?
0190デフォルトの名無しさん
垢版 |
2017/07/03(月) 00:49:28.31ID:oRb6DKWl
Cのクイックソートも悪くないよな
たった一個の配列を部分部分で触っていくだけ
範囲きめてピボットきめて交換、の繰り返し
メモリの使用に余計なところが無いからスカっとする
0192デフォルトの名無しさん
垢版 |
2017/07/03(月) 08:47:12.79ID:MHKU0t6b
>>191
勝手に相手の理解度決めつけるガイジはレスしないでね
0193デフォルトの名無しさん
垢版 |
2017/07/03(月) 08:49:31.61ID:MHKU0t6b
まずこの話計算量関係ないからな
二重の意味でガイジやね
0194デフォルトの名無しさん
垢版 |
2017/07/03(月) 08:57:49.58ID:1X06ZxCF
>>193
いやいや関係あるからw
in-placeって文字も読めないのかよ
図らずも君の低脳度もより明らかになってしまったね
0195デフォルトの名無しさん
垢版 |
2017/07/03(月) 08:59:51.73ID:deAVzAEO
>>194
in-placeの話してるのお前だけだから
自分の話したいことと人が話してることの区別もつかないとか凄いな
0196デフォルトの名無しさん
垢版 |
2017/07/03(月) 09:05:27.81ID:1X06ZxCF
>>195
だから低脳はアルゴリズムの話に入ってこなくて良いって
ドカタは用意された関数呼び出すだけなんだから
0197デフォルトの名無しさん
垢版 |
2017/07/03(月) 09:07:05.32ID:1X06ZxCF
でもO(n)とO(n log n)の区別もつかない低脳が次世代言語について語ってるって面白いな
0198デフォルトの名無しさん
垢版 |
2017/07/03(月) 09:11:01.34ID:deAVzAEO
>>196
周り見ろよ。今そんな話してるのお前だけだぞ
話に入ってきたのはお前だ
あと2回目だけど勝手に人をin-placeのクイックソート理解してない扱いするのやめてね。流石に不快だから
0199デフォルトの名無しさん
垢版 |
2017/07/03(月) 09:31:49.69ID:1X06ZxCF
>>198
ああゴメンゴメン
>>189がin-placeを「妙なハードル」とかとんでもない事言ってるから、つい言葉がキツくなっちゃった
ハードルどころか基本中の基本だよねw
0200デフォルトの名無しさん
垢版 |
2017/07/03(月) 09:49:48.18ID:deAVzAEO
>>199
ああそういうことね
ハードルはin-placeを指して言ったんではないんよ
ID:19kDKEGSはHaskellのコードで何をやってるか理解してから普通のクイックソート理解したみたいで、そこに>>188が来たから理解というものに妙なハードルというか拘りみたいなものを持っていると言いたかったんよ
たしかにハードルっていう表現はあんまり良くなかったな
0201デフォルトの名無しさん
垢版 |
2017/07/03(月) 10:41:46.80ID:apAa5CHd
Cが原文でHaskellが翻訳文という前提なら
誤訳のリスクがあるHaskellの方が読みやすいってことは理論上ありえないね
でも理論には前提があるから、前提をぶち壊せば理論上ありえないことが実現する
0202デフォルトの名無しさん
垢版 |
2017/07/03(月) 11:19:50.56ID:6QSWtKdI
>>188
そのクイックソートのコードは知らないから的外れになるかもしれないが
普通は、Cのコードなんて慣れている人以外には判じ物みたいで
何だってHaskellのコードの方が判りやすいだろう
0203デフォルトの名無しさん
垢版 |
2017/07/03(月) 14:43:11.96ID:X+xTdZLt
次世代言語スレで何でみんなCとHaskellの話してんねん
そのうちCOBOLとかForthの話になるのか
0205デフォルトの名無しさん
垢版 |
2017/07/03(月) 16:15:40.55ID:NT4tSDag
どんどんプッシュしたくなる次世代言語が見えなくて
現実逃避してるような気がするのは気のせい?
0206デフォルトの名無しさん
垢版 |
2017/07/03(月) 17:12:08.86ID:apAa5CHd
言語を使いこなす正攻法よりもマインドをコントロールする裏技ばかり使うクズが増えた
言語の進化は止まった
0207デフォルトの名無しさん
垢版 |
2017/07/03(月) 17:41:53.22ID:XPxmwxQZ
>>203
CはともかくHaskellは永遠の次世代言語やぞ
0210デフォルトの名無しさん
垢版 |
2017/07/03(月) 20:54:48.22ID:UwBLUxpl
>>188
本気も本気。
んで、やっとCのクイックソートの動きや無駄の無さが理解できたし、自分で(コピペじゃ無く)書けるようになった。
才能ある奴は最初から理解出来るんだろうけど、おいらはHaskell経由する事で色々理解出来たし、Haskellでなら何でも書けるぞ‼︎ってなってから、やっと文法やアルゴリズム以上に大事なのはデータ構造だと気付いた。
メジャーな画像ファイルのデータ構造書いてるサイトあったら教えてくれ。
そしたら画像変換ソフト作る。
今はテキストなら分かってるからCUIのviライクな(悪魔でライク。自分なりにもっと一貫性のある移動コマンドにする予定)テキストエディタ今度の休みから作り始める予定。
Haskell普及の宣伝の一助になれば良いな。。。
0216デフォルトの名無しさん
垢版 |
2017/07/03(月) 21:27:19.89ID:UwBLUxpl
>>213
他に語る奴いないから語ってる。
代わりに普及に貢献してくれるんならROMっても良い。
それ位惚れてんだ。
0220デフォルトの名無しさん
垢版 |
2017/07/03(月) 21:38:50.74ID:OUQpTrGv
>>214
エリクサーは並列処理楽そうだから興味ある。
ErlangはPrologっぽいのが馴染めなかったからね。。。
(そのPrologも、地味に論理型言語の実験場的役割してるって記事読んで、制約論理プログラミングが取り入れられてるの実感して見直したところだけど)
0221デフォルトの名無しさん
垢版 |
2017/07/03(月) 21:40:10.37ID:OUQpTrGv
>>218
なら、代わりに普及してくれ。
不安に思ったらすぐ出てくるぞ。
0223デフォルトの名無しさん
垢版 |
2017/07/03(月) 21:51:13.50ID:PMhP6mgs
分かってんよチクショウ。
でもな。
これ程入門者向けの言語は無いと思ってるんだ。
それこそ、小学生からプログラミングが取り入れられるなら、Haskell教えるべきだってくらいに。
構造が分かれば、手続き型言語後から覚えても役に立つ。
Haskellはプログラムの構造を明らかにする。
0225デフォルトの名無しさん
垢版 |
2017/07/03(月) 22:08:00.17ID:deAVzAEO
Haskellの人結構いいと思うけどな
言ってることもまあまあ妥当だと思うぞ
0227デフォルトの名無しさん
垢版 |
2017/07/03(月) 22:15:14.50ID:wybralPC
このスレだけじゃなく他もやめてくれ
ほんと迷惑以外の何者でもない
そのレベルのHaskellの布教や他言語disが死体ならブログでやってくれ
でなきゃせめて読まずに済むようにコテハン付けてくれ
0229デフォルトの名無しさん
垢版 |
2017/07/03(月) 22:20:39.13ID:wybralPC
コイツのつまんない自己満ライブラリ連投がなきゃスレがにぎわんってなら
過疎って落ちる方がずっとマシ
0231デフォルトの名無しさん
垢版 |
2017/07/03(月) 22:40:55.36ID:hTTgnp+k
>>224
んじゃ、課題な。
これ解決したらROMる。
>>84-85のコードで>>85だな。
mfptn,mfput,mfwriteに相当する汎用的な関数手続き型言語で書いてくれ。
Haskellより簡潔な形で。

表面的にはクロージャ渡してループの中の変数に渡せば良い。
問題は、オープンするには純粋なファイル名だが、表示する時ファイル名を青文字にしたいとかそう言うカスタマイズ可能なmfptnが書けるかだ。
書ければmfputもmfwriteもmfptn使って似た様なコード書かなくて済む様になる。

>>225
ありがとう。
これでも言語オタとして色んな言語渡り歩いて導き出した結論。
やっとプログラマのスタートラインに立てた実感からの発言。
マジレスってやつなんだ。
間違ってたら指摘も結構。
真摯に受け止める。

今はプログラミング用のコマンド作ってるのがメイン。
自分の為のツール作るのが一番モチベーション保てるね。

HaskellerならEmacsって思ってたけど、viが軽くて、実験的に書いた行を消したいだけとかに良いね。
(Emacs、編集したいだけなのに型検査だかコンパイルだかやってんじゃねーよボケ)
ただ、せっかくhjklで上下左右一文字移動なんだから、その上下段のyuioやbnm,で単語や行の移動しても良いじゃんよって思ったから作ろうと思ってる。
u/Uのアンドゥー/リドゥーは。。。CntlとAltかな。。。
■ このスレッドは過去ログ倉庫に格納されています

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