[過去ログ] 関数型プログラミング言語Haskell Part33 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
20
(2): 2020/02/13(木)02:31 ID:7PHqZJTi(1/2) AAS
>>17
短さはともかく解りやすさは一概には言えないと思う。こんなのはどうかな
l = take 3 . unfoldr (Just . splitAt 4) $ [1..12]
diagonals l = map catMaybes . transpose $ zipWith (<>) (inits . repeat $ Nothing) (map (map Just) l)

> プログラミング言語は問題を解くための道具だが、Haskellの場合、
> プログラミング言語自体が解くための問題になっている感じ。
これは言い得ていると思う。Haskell の色んな所に入り込んだ抽象化のおかげで、
従来、アプリを作る末端のプログラマーが各々処理していた仕事が、ライブラリやコンパイラ側に吸い上げられる。
だから全体としての仕事の総量は少なくなる。でもそのかわり、ある程度書けるためにはベースの抽象に慣れる必要がある。
fmapってなに/モナドってなに/Foldableってなに/Lazyってなに... 学習コストは他の言語に比べてずっと高い。

>19
> Haskellの書き方極めればC言語に匹敵する速度が出せる
可能だよ
外部リンク:chrispenner.ca
21
(1): 2020/02/13(木)04:40 ID:8j+a4fKo(1) AAS
>>20
それ前にも紹介されてて俺もすげーなと思ったが、よく考えると、
じゃあ今wcやlsのようなLinuxコマンドをhaskellで書きたいかと聞かれれば、
べつにいいやと応える。

もっとこう、せめてSwichやPS4のインディーズゲームや、
窓の杜の人気編集ソフトレベルのアプリで、
Cと張り合う猛者は居ないのかな。

Darcsだって肝心の速度ではgitに敵わなかったわけだし。

前に、ブロック崩しでCと比較した人が居たような気がしたが、
どこのページだったかな。
22: 2020/02/13(木)16:46 ID:7PHqZJTi(2/2) AAS
>>21
俺はコマンドラインユーティリティを Haskell で作るのイイナって思ってる。
型の恩恵でヘルプとか書き漏らさないし、単純な計算なら自動でコマンド化できるっぽい。

Haskell 製のゲームは何故かとても少ない。こちらとか
外部リンク:store.steampowered.com

beatmaniaのような音ゲーを120行で実装するって触れ込みのチュートリアル
外部リンク[html]:fumieval.github.io
23: 2020/02/13(木)17:49 ID:0eJoVY/8(1) AAS
>>9
Rubyだと

def diagonals(a)
m = a.size
n = a[0].size
a.flatten.group_by.with_index{|v,i| i/m+i%n}.values
end
24
(3): 2020/02/14(金)14:43 ID:3dEdKDtV(1) AAS
Haskellで書かれた他人のコードって詠みにくいと思うのは俺だけか?
型クラスやモナドが難しいというより、何がどこで定義されてるかよくわからんし、どういう動作をする関数なのかがぱっと見でわからん。
25: 2020/02/14(金)16:56 ID:NyO1b3mL(1) AAS
言語というより、可読性に対する意識の問題だと思うよ
みんな薄々読みにくいと思ってるけど、互いに頭悪いと思われてマウント取られるのが怖くて言い出せないから、読みにくいコードはいつまでも読みにくいまま
実用言語では「俺が読めないのは書いた奴が悪い」が基本なので、互いに指摘しあうことで自然と改善されていく
26: 2020/02/14(金)16:59 ID:ONnLM1s9(1) AAS
>>24
千差万別としか言いようがない。
Github や hackage にあるコードを見ても、分かりやすいものもあれば、そうでないものもある。
CやJava、Python などと比べて、特に差は無いように思えるが。

何かが定義されている場所は同じモジュール内か、さもなくばインポートしているモジュール内なんだから、
検索すれば見つかるでしょ。
よくわからん、という意味がよくわからん。

動作がぱっと見でわからんというのは、それこそhaskellに限った話ではないのでは?
言語の習熟度や、そのコードで解いている問題のジャンルにもよるでしょ。
27: 2020/02/15(土)10:44 ID:2OHXNxKd(1/3) AAS
The build process was killed (i.e. SIGKILL). The typical reason
for this is that there is not enough memory available (e.g. the OS killed a
process using lots of memory).
へんなエラーが出来て今までコンパイルできなものが急にできなくなった
Haskellは最悪
もう使いたくない
28: 2020/02/15(土)10:58 ID:ELCuAwaW(1) AAS
頭が悪い奴が作るとすぐメモリ不足になると死んだじっちゃんが言っていた
29: 2020/02/15(土)12:35 ID:2OHXNxKd(2/3) AAS
テンプレートハスケルをつかったでっかいソースだからなるのかな
一つのファイルコンパイルするのに10分位掛かるんだけど
分割するようにすればなおる?
30: 2020/02/15(土)14:01 ID:45cVu0dh(1) AAS
>>24
問題の関数を使っているモジュールをghciにロードして:iコマンド使えば、
それがどのモジュールで定義されているのか分かるが、
そう言うことではなく?
31
(1): 2020/02/15(土)16:54 ID:/Ku5gNgy(1/2) AAS
GHC本体も重いけどhaddockもクソ重なんだよなぁ…
Haskellで実用的なプログラムは書けないということなのか、
単にhaddockの設計がアレなのか…
32: 2020/02/15(土)17:37 ID:J1bovO5o(1) AAS
ちょいとしたwebサーバーなら良いかもと思うがそれならほかの選択肢があるんだよな。。
33
(1): 2020/02/15(土)17:41 ID:2OHXNxKd(3/3) AAS
cabalのbaseのバージョンって指定しないとぶっ壊れてコンパイルできなくなるんだな
ハスケルには罠が多すぎる
34
(1): 2020/02/15(土)18:24 ID:20tth6Hi(1/2) AAS
お前らのマシンスペックは?
35: 2020/02/15(土)18:44 ID:20tth6Hi(2/2) AAS
>>33
ふーむ
cabal ファイルに書くパッケージのバージョン制限は、
その範囲ならなんでもビルドできますよ、サポートしてますよってサイン。
だから base 含め妥当なバージョンを書いておくべきってのは言えるけど…

状況はリビルドしただけで依存パッケージのバージョンが上がって壊れた、みたいな感じかな?
cabalってそんな風に動作するんだっけか
36: 2020/02/15(土)22:05 ID:/Ku5gNgy(2/2) AAS
>>31
全パッケージの情報をメモリに保持してるんじゃ重くもなるよね…
全部メモリに載ればいいけどそうでなければスラッシングの嵐…
外部リンク:github.com
37: 2020/02/15(土)22:07 ID:EA+vHtiY(1) AAS
苦節1ヶ月ようやく一歩前進
Haskellがどういう言語か垣間見た気がする
38: 2020/02/15(土)23:05 ID:zVmjMtcZ(1) AAS
>>24
「読みにくい」ではなくて「詠みにくい」かw
39
(1): 2020/02/17(月)22:23 ID:csKbLSDg(1) AAS
よっしゃ〜
JSONパーサーが一応完成!!
長かった…TT
40
(1): 2020/02/18(火)01:39 ID:rJfZlmsn(1) AAS
おー おめでとう〜
41
(1): 2020/02/18(火)05:30 ID:7inEKR1i(1) AAS
>>39
Githubで公開しようぜ
42: 2020/02/18(火)19:15 ID:MNdOSpyG(1) AAS
>>40
あざっす
>>41
コンバーターを作る前段階としてのパーサーなのでコンバーターとして完成したら公開する予定です
今はdo、コピペ多用で見苦しいことになってますしwww
43: 2020/02/27(木)10:14 ID:MNKJ7PH5(1) AAS
PowerShellのリダイレクトに悩まされた
プログラムやHaskell側のエンコーディングの問題かと思ったらPowerShellの問題だった
44
(1): 2020/02/28(金)00:06 ID:zwPBDzBW(1) AAS
ハスケルむずくて嫌い
OOPっぽく拡張可能にしようとするとつい存在量化したくなってわけわからなくなる
45: 2020/02/28(金)01:47 ID:4Hc/i95c(1) AAS
>>44
目標や方針を明確にしないでなんとなくプログラムすると、
拡張可能化に限らず訳わからなくなることが多いね。
haskellは特に。

だから俺は、面倒でもごく直近のゴールとその道筋をノートに書いてから、
コーディングするように心掛けてる。
頭の中だけで出来るヤツもいるけど、俺はまだ無理。
46: 2020/02/28(金)04:53 ID:Ngh6BpVw(1/2) AAS
Writing implicit global project config file to: C:\sr\global-project\stack.yaml
Note: You can change the snapshot via the resolver field there.
Using latest snapshot resolver: lts-15.1
Stack has not been tested with GHC versions above 8.6, and using 8.8.2, this may fail
No setup information found for ghc-8.8.2 on your platform.
This probably means a GHC bindist has not yet been added for OS key 'windows32'.
Supported versions: ghc-7.8.4, ghc-7.10.1, ghc-7.10.2, ghc-7.10.3, ghc-8.0.1, ghc-8.0.2, g
hc-8.2.1, ghc-8.2.2, ghc-8.4.1, ghc-8.4.2, ghc-8.4.3, ghc-8.4.4, ghc-8.6.1, ghc-8.6.2, ghc
-8.6.3, ghc-8.6.5

32bit版のWindowsでhaskell Stackが使えない人は
C:\sr\global-project\stack.yamlファイルの
resolver:部分をlts-13.11に変更すればghcのインストールが出来るよ。

GHC8.6.4からは32bit Windowsに対応していない
外部リンク[html]:www.haskell.org
ページの下に「LTS 13.11 for ghc-8.6.3, published 12 months ago」と書いてあるので
stack.yamlファイルを編集してこのLTSバージョンを指定した後にstack newコマンドを実行すれば
ghcのインストールが始まるよ。
外部リンク:www.stackage.org
47: 2020/02/28(金)05:14 ID:Ngh6BpVw(2/2) AAS
>>34
OS : Windows 8.1 32bit
CPU : Atom Z3735F 1.33GHz
RAM : 2GB
eMMC : 64GB
48
(1): 2020/03/02(月)10:29 ID:vpGCvE08(1) AAS
今までなんとなく難しそうと思って避けてたProfunctor Opticsだけど、ようやくちゃんと勉強し始めた
49
(1): 2020/03/02(月)19:46 ID:xjpD2ASc(1) AAS
自分も面白そうなので読んでみよう。

>>48
そういうのってどこで情報を仕入れてくるん?
1-
あと 953 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.015s