[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 10/10 00:15 / Filesize : 342 KB / Number-of Response : 1029
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

関数型プログラミング言語Haskell Part33



1 名前:デフォルトの名無しさん [2020/02/10(月) 18:17:36 ID:L6eYQqyh.net]
関数型プログラミング言語 Haskell について語るスレです。

Haskell Language(公式サイト)
https://www.haskell.org/
日本Haskellユーザーグループ - Haskell-jp
https://haskell.jp/

前スレ
関数型プログラミング言語Haskell Part32
https://mevius.5ch.net/test/read.cgi/tech/1548720347/

2 名前:デフォルトの名無しさん [2020/02/10(月) 18:18:05 ID:L6eYQqyh.net]
過去スレ一覧
31) https://mevius.5ch.net/test/read.cgi/tech/1506447188/
30) mevius.2ch.net/test/read.cgi/tech/1484491434/
29) peace.2ch.net/test/read.cgi/tech/1436869629/
28) peace.2ch.net/test/read.cgi/tech/1428535861/
27) peace.2ch.net/test/read.cgi/tech/1420718555/
26) peace.2ch.net/test/read.cgi/tech/1406436392/
25) peace.2ch.net/test/read.cgi/tech/1393313450/
24) toro.2ch.net/test/read.cgi/tech/1382705669/
23) toro.2ch.net/test/read.cgi/tech/1376111807/
22) toro.2ch.net/test/read.cgi/tech/1364009659/
21) toro.2ch.net/test/read.cgi/tech/1358702176/
20) toro.2ch.net/test/read.cgi/tech/1350428908/
19) toro.2ch.net/test/read.cgi/tech/1340760070/
18) toro.2ch.net/test/read.cgi/tech/1331902463/
17) toro.2ch.net/test/read.cgi/tech/1325510368/
16) toro.2ch.net/test/read.cgi/tech/1317958045/
15) hibari.2ch.net/test/read.cgi/tech/1310199414/
14) hibari.2ch.net/test/read.cgi/tech/1299385928/
13) hibari.2ch.net/test/read.cgi/tech/1286706874/
12) hibari.2ch.net/test/read.cgi/tech/1272536128/
11) pc12.2ch.net/test/read.cgi/tech/1252382593/
10) pc12.2ch.net/test/read.cgi/tech/1231861873/
09) pc11.2ch.net/test/read.cgi/tech/1211010089/
08) pc11.2ch.net/test/read.cgi/tech/1193743693/
07) pc11.2ch.net/test/read.cgi/tech/1174211797/
06) pc11.2ch.net/test/read.cgi/tech/1162902266/
05) pc8.2ch.net/test/read.cgi/tech/1149263630/
04) pc8.2ch.net/test/read.cgi/tech/1140717775/
03) pc8.2ch.net/test/read.cgi/tech/1076418993/
02) pc2.2ch.net/test/read.cgi/tech/1013846140/
01) pc.2ch.net/tech/kako/996/996131288.html

3 名前:デフォルトの名無しさん [2020/02/10(月) 18:18:27 ID:L6eYQqyh.net]
関連サイト
(英語)
Haskell - Wikibooks, open books for an open world (ページ内に内容をまとめたPDFあり)
https://en.wikibooks.org/wiki/Haskell

Learn You a Haskell for Great Good! (『すごいHaskellたのしく学ぼう!』の無料オンライン版)
learnyouahaskell.com/chapters

Real World Haskell (同名書籍の無料オンライン版)
book.realworldhaskell.org/read/

(以下、日本語)
Haskell入門 5ステップ - HaskellWiki (公式サイト内、日本語入門セクション)
https://wiki.haskell.org/Haskell%E5%85%A5%E9%96%80_5%E3%82%B9%E3%83%86%E3%83%83%E3%83%97

Haskell - Wikibooks (上記Wikibooksの同タイトル日本語版。多くの項目が未編集)
https://ja.wikibooks.org/wiki/Haskell

A Gentle Introduction to Haskell, Version 98
www.sampou.org/haskell/tutorial-j/

Haskell のお勉強
www.shido.info/hs/

お気楽 Haskell プログラミング入門
www.nct9.ne.jp/m_hiroi/func/haskell39.html

本物のプログラマはHaskellを使う
itpro.nikkeibp.co.jp/article/COLUMN/20060915/248215/

[入門]関数プログラミング―質の高いコードをすばやく直感的に書ける!
gihyo.jp/dev/feature/01/functional-prog

4 名前:デフォルトの名無しさん [2020/02/10(月) 18:28:11 ID:L6eYQqyh.net]
質問すると埋まりそうだったので新スレ立てさせてもらいました

Stringで長さ(文字数)ではなくUTF-8コードとしての総バイト数を知れるような関数はありますか?

5 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 20:12:23.49 ID:gQeDR86I.net]
ご苦労さん。関連サイトがやや古くなっている感があるね。
追加

日本Haskellユーザーグループ - Haskell-jp
https://haskell.jp

6 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 20:13:34.39 ID:gQeDR86I.net]
>>4
:set -XOverloadedStrings
import Data.Text.Lazy (Text)
import Data.Text.Lazy.Encoding (encodeUtf8)
import Data.ByteString.Lazy (unpack)
length . unpack . encodeUtf8 $ ("あ" :: Text )
-- 3

7 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 21:23:34.40 ID:L6eYQqyh.net]
>>6
ありがとうございます!

>>5
リンク切れは修正したのですが全くお気楽じゃないページにリンクしてしまいましたwww

お気楽 Haskell プログラミング入門
www.nct9.ne.jp/m_hiroi/func/haskell39.html

お気楽 Haskell プログラミング入門
www.nct9.ne.jp/m_hiroi/func/haskell.html

8 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 22:24:04.13 ID:qtoUvtqH.net]
haskellはオワコンなの?

9 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 11:04:03 ID:GjzPGqUa.net]
universe-base パッケージに Data.Universe.Helpers.diagonals という関数があって、

diagonals [[1,2,3,4], [5,6,7,8], [9,10,11,12]] = [[1], [5,2], [9,6,3], [10,7,4], [11,8], [12]]

という、つまり行列を対角線状に走査して並べ直す計算をしてくれる。
で、これの関数定義がかなりシンプルなんだ。

diagonals :: [[a]] -> [[a]]
diagonals = tail . go [] where
go b es_ = [h | h:_ <- b] : case es_ of
[] -> transpose ts
e:es -> go (e:ts) es
where ts = [t | _:t <- b]

簡単な行列で関数を展開してみると何をやっているのかよく分かる。

これ考えたヤツ天才じゃね?
今の俺は他人のソースを展開して理解するので精一杯だけど、
いつかこんな関数定義ができるよう精進したい。

10 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 13:36:26 ID:TiXBKsVJ.net]
>>9
こんな関数いつ使うん?



11 名前:デフォルトの名無しさん [2020/02/11(火) 14:18:49.70 ID:d+YF7kv3.net]
J言語でも同様の操作は用意されている。
___ a =: >: i. 3 4
1 2 3 4
5 6 7 8
9 10 11 12

___ </. a
+-+---+-----+------+----+--+
|1|2 5|3 6 9|4 7 10|8 11|12|
+-+---+-----+------+----+--+

12 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 18:22:03 ID:RQLUpvMq.net]
畳み込み計算(foldじゃなくてconvolutionの方)とかやりたいときにあると便利かも?

13 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 08:25:26.33 ID:5WxWkSHH.net]
昔話Project Eulerをhaskellで解くのに同じ役割の関数を自作した記憶がある

14 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 13:37:04 ID:1ZV1cGD2.net]
そもそも天才じゃないとやりたいことが出来ない言語ってどうなんだ

15 名前:デフォルトの名無しさん [2020/02/12(水) 13:53:42.16 ID:MDE/KJVl.net]
別に他の言語でも10倍量書けば同じことが出来るんだから使わなければいいだけ
共同作業の時は困るから天才だけでチーム組んでもらえばいい

16 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 14:24:47 ID:B2qV6LKd.net]
凡才も天才もほぼ同様に書けるpythonのような素晴らしい言語より、
凡才でも拙く書けるけど天才ならシンプルに書けるhaskellのような素人お断りな言語の方が好き。

魔法みたいで中二心をくすぐられるし、学ぶ意欲がわく。

まぁ、仕事の道具としては迷わず前者を使うけど。

17 名前:デフォルトの名無しさん [2020/02/12(水) 20:45:42.48 ID:DqzYUQ+/.net]
>>9
Rなら同様の関数をもっと短く分かりやすく書ける。

diagonals <- function(A) lapply(2:sum(dim(A)), function(i) A[row(A) + col(A) == i])

diagonals(matrix(1:12, 3, 4, byrow = TRUE))

これで [[1], [5,2], [9,6,3], [10,7,4], [11,8], [12]] というベクトルのリストが
生成される。

>>16
そうだな。プログラミング言語は問題を解くための道具だが、Haskellの場合、
プログラミング言語自体が解くための問題になっている感じ。

18 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 22:22:34.78 ID:ohhYjydu.net]
Haskellの書き方極めればC言語に匹敵する速度が出せるって聞いたんだけどマジ?

19 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 00:18:51.95 ID:00coYSBu.net]
>>18


20 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 02:31:41 ID:7PHqZJTi.net]
>>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言語に匹敵する速度が出せる
可能だよ
https://chrispenner.ca/posts/wc



21 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 04:40:03 ID:8j+a4fKo.net]
>>20
それ前にも紹介されてて俺もすげーなと思ったが、よく考えると、
じゃあ今wcやlsのようなLinuxコマンドをhaskellで書きたいかと聞かれれば、
べつにいいやと応える。

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

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

前に、ブロック崩しでCと比較した人が居たような気がしたが、
どこのページだったかな。

22 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 16:46:02 ID:7PHqZJTi.net]
>>21
俺はコマンドラインユーティリティを Haskell で作るのイイナって思ってる。
型の恩恵でヘルプとか書き漏らさないし、単純な計算なら自動でコマンド化できるっぽい。

Haskell 製のゲームは何故かとても少ない。こちらとか
https://store.steampowered.com/app/591640/Light_It/?l=japanese

beatmaniaのような音ゲーを120行で実装するって触れ込みのチュートリアル
fumieval.github.io/rhythm-game-tutorial/ja.html

23 名前:デフォルトの名無しさん [2020/02/13(木) 17:49:26.84 ID:0eJoVY/8.net]
>>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 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 14:43:09.16 ID:3dEdKDtV.net]
Haskellで書かれた他人のコードって詠みにくいと思うのは俺だけか?
型クラスやモナドが難しいというより、何がどこで定義されてるかよくわからんし、どういう動作をする関数なのかがぱっと見でわからん。

25 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 16:56:30 ID:NyO1b3mL.net]
言語というより、可読性に対する意識の問題だと思うよ
みんな薄々読みにくいと思ってるけど、互いに頭悪いと思われてマウント取られるのが怖くて言い出せないから、読みにくいコードはいつまでも読みにくいまま
実用言語では「俺が読めないのは書いた奴が悪い」が基本なので、互いに指摘しあうことで自然と改善されていく

26 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 16:59:16 ID:ONnLM1s9.net]
>>24
千差万別としか言いようがない。
Github や hackage にあるコードを見ても、分かりやすいものもあれば、そうでないものもある。
CやJava、Python などと比べて、特に差は無いように思えるが。

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

動作がぱっと見でわからんというのは、それこそhaskellに限った話ではないのでは?
言語の習熟度や、そのコードで解いている問題のジャンルにもよるでしょ。

27 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 10:44:39.37 ID:2OHXNxKd.net]
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 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 10:58:18.94 ID:ELCuAwaW.net]
頭が悪い奴が作るとすぐメモリ不足になると死んだじっちゃんが言っていた

29 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 12:35:42 ID:2OHXNxKd.net]
テンプレートハスケルをつかったでっかいソースだからなるのかな
一つのファイルコンパイルするのに10分位掛かるんだけど
分割するようにすればなおる?

30 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 14:01:44.69 ID:45cVu0dh.net]
>>24
問題の関数を使っているモジュールをghciにロードして:iコマンド使えば、
それがどのモジュールで定義されているのか分かるが、
そう言うことではなく?



31 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 16:54:40 ID:/Ku5gNgy.net]
GHC本体も重いけどhaddockもクソ重なんだよなぁ…
Haskellで実用的なプログラムは書けないということなのか、
単にhaddockの設計がアレなのか…

32 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 17:37:02 ID:J1bovO5o.net]
ちょいとしたwebサーバーなら良いかもと思うがそれならほかの選択肢があるんだよな。。

33 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 17:41:30 ID:2OHXNxKd.net]
cabalのbaseのバージョンって指定しないとぶっ壊れてコンパイルできなくなるんだな
ハスケルには罠が多すぎる

34 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 18:24:38 ID:20tth6Hi.net]
お前らのマシンスペックは?

35 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 18:44:53.36 ID:20tth6Hi.net]
>>33
ふーむ
cabal ファイルに書くパッケージのバージョン制限は、
その範囲ならなんでもビルドできますよ、サポートしてますよってサイン。
だから base 含め妥当なバージョンを書いておくべきってのは言えるけど…

状況はリビルドしただけで依存パッケージのバージョンが上がって壊れた、みたいな感じかな?
cabalってそんな風に動作するんだっけか

36 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 22:05:32 ID:/Ku5gNgy.net]
>>31
全パッケージの情報をメモリに保持してるんじゃ重くもなるよね…
全部メモリに載ればいいけどそうでなければスラッシングの嵐…
https://github.com/haskell/haddock/issues/462#issuecomment-375822456

37 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 22:07:07 ID:EA+vHtiY.net]
苦節1ヶ月ようやく一歩前進
Haskellがどういう言語か垣間見た気がする

38 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 23:05:59 ID:zVmjMtcZ.net]
>>24
「読みにくい」ではなくて「詠みにくい」かw

39 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 22:23:26.89 ID:csKbLSDg.net]
よっしゃ〜
JSONパーサーが一応完成!!
長かった…TT

40 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 01:39:25.24 ID:rJfZlmsn.net]
おー おめでとう〜



41 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 05:30:54 ID:7inEKR1i.net]
>>39
Githubで公開しようぜ

42 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 19:15:31.61 ID:MNdOSpyG.net]
>>40
あざっす
>>41
コンバーターを作る前段階としてのパーサーなのでコンバーターとして完成したら公開する予定です
今はdo、コピペ多用で見苦しいことになってますしwww

43 名前:デフォルトの名無しさん mailto:sage [2020/02/27(木) 10:14:58 ID:MNKJ7PH5.net]
PowerShellのリダイレクトに悩まされた
プログラムやHaskell側のエンコーディングの問題かと思ったらPowerShellの問題だった

44 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 00:06:13.33 ID:zwPBDzBW.net]
ハスケルむずくて嫌い
OOPっぽく拡張可能にしようとするとつい存在量化したくなってわけわからなくなる

45 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 01:47:53 ID:4Hc/i95c.net]
>>44
目標や方針を明確にしないでなんとなくプログラムすると、
拡張可能化に限らず訳わからなくなることが多いね。
haskellは特に。

だから俺は、面倒でもごく直近のゴールとその道筋をノートに書いてから、
コーディングするように心掛けてる。
頭の中だけで出来るヤツもいるけど、俺はまだ無理。

46 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 04:53:58 ID:Ngh6BpVw.net]
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に対応していない
https://www.haskell.org/ghc/download.html
ページの下に「LTS 13.11 for ghc-8.6.3, published 12 months ago」と書いてあるので
stack.yamlファイルを編集してこのLTSバージョンを指定した後にstack newコマンドを実行すれば
ghcのインストールが始まるよ。
https://www.stackage.org/

47 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 05:14:00.81 ID:Ngh6BpVw.net]
>>34
OS : Windows 8.1 32bit
CPU : Atom Z3735F 1.33GHz
RAM : 2GB
eMMC : 64GB

48 名前:デフォルトの名無しさん [2020/03/02(月) 10:29:59 ID:vpGCvE08.net]
今までなんとなく難しそうと思って避けてたProfunctor Opticsだけど、ようやくちゃんと勉強し始めた

49 名前:デフォルトの名無しさん mailto:sage [2020/03/02(月) 19:46:53 ID:xjpD2ASc.net]
自分も面白そうなので読んでみよう。

>>48
そういうのってどこで情報を仕入れてくるん?

50 名前:デフォルトの名無しさん [2020/03/03(火) 00:52:57 ID:halZ50DI.net]
>>49
自分は圏論をBartosz Milewskiの動画や本で勉強してるから、
彼のブログやTwitterがメインの情報源だなあ



51 名前:デフォルトの名無しさん mailto:sage [2020/03/03(火) 01:49:10 ID:PY4QrkVr.net]
Haskell圏論で調和解析の問題解いてんのもしかして?
盛り上がりが別のところにあるとかどういう

52 名前:デフォルトの名無しさん mailto:sage [2020/03/03(火) 02:02:40 ID:PY4QrkVr.net]
俺の推測が正しければHaskellの一番高いニーズは普通のソフト書くためじゃない。研究用だろ

53 名前:デフォルトの名無しさん mailto:sage [2020/03/03(火) 03:34:00.48 ID:UPY0 ]
[ここ壊れてます]

54 名前:O5FV.net mailto: >>50
ありがとさん。
早速、本も買ったった。
[]
[ここ壊れてます]

55 名前:デフォルトの名無しさん mailto:sage [2020/03/08(日) 11:51:03 ID:+VYxIyVU.net]
spacemacs(intero)からvscode(hie)に移行しました。
前者だとノーマルモード時に, s bでターミナル起動+stack ghciできてたのですが、
vscodeで同じようにやるのは、どうやったら出来ますか?

56 名前:デフォルトの名無しさん mailto:sage [2020/03/09(月) 03:54:20 ID:FT5fJZSn.net]
>>54
Ctrl + @ でターミナルを開く/閉じる
かな。んで
stack exec ghci
かな。

57 名前:デフォルトの名無しさん mailto:sage [2020/03/09(月) 10:30:41.72 ID:7EQl7t+6.net]
vimでhaskellやってる人いる?
どんな環境?

58 名前:デフォルトの名無しさん mailto:sage [2020/03/09(月) 16:04:10.40 ID:UrIT8yLm.net]
>>56
以前はhaskell用のプラグインを色々入れてIDE構築してたけど全部消した。
Alignやvim-surroundみたいな汎用的なプラグインはいくつか入れてるけど、
今はhaskellに特化したものは何もない。

結局これが一番使いやすい。
Practical Vim を実践するだけでほぼ十分にすらすらプログラミングできる。

うるさいから、ghcidも止めた。

ウィンドウは左右に分けて左にソースコード、
右にターミナルを開いてる。
左はたまに更に上下に分けて2つのソースを開くこともあるけど一時的。
タブは俺は今のところ必要ないな(使いこなせれば便利だとは思う)。

59 名前:デフォルトの名無しさん [2020/03/11(水) 22:40:07 ID:Y6q+o+d/.net]
勉強用だけど
vim -> markdown -> pandoc -> ipynb -> ihaskell
ihaskellはdockerに隔離してる
もしjupyterを使っているなら
ihaskellのインストールは気を付けた方が良いと思う
通常のインストールをしたらjupyterが壊れた
ihaskellの問題ではなく
pythonのパッケージマネージャーの問題かもしれない

60 名前:デフォルトの名無しさん [2020/03/22(日) 11:54:03.39 ID:WkTC8Krl.net]
d:\Users\dev\development\Haskell\test-project>stack setup
Stack has not been tested with GHC versions above 8.6, and using 8.8.3, this may fail
Preparing to install GHC to an isolated location.
This will not interfere with any system-level installation.
Already downloaded.
Already downloaded.
Already downloaded.
Decompressing ghc-8.8.3.tar.xz...

7-Zip 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18

Processing archive: C:\Users\dev\AppData\Local\Programs\stack\x86_64-windows\ghc-8.8.3.tar.xz

Extracting ghc-8.8.3.tar

Everything is Ok

Size: 2555330560
Compressed: 204702116
Extracting ghc-8.8.3.tar...
Extracted total of 10091 files from ghc-8.8.3.tar
C:\Users\dev\AppData\Local\Programs\stack\x86_64-windows\ghc-8.8.3-tmp4384\ghc-8.8.3\:
renamePath:MoveFileEx "C:\\Users\\dev\\AppData\\Local\\Programs\\stack\\x86_64-windows\\ghc-8.8.3-tmp4384\\ghc-8.8.3\\"
"C:\\Users\\dev\\AppData\\Local\\Programs\\stack\\x86_64-windows\\ghc-8.8.3\\": permission denied (アクセスが拒否されました。)


は?2GBも展開して書き込んでSSDの素子を疲弊させておいてエラー吐いて落ちるとか許せないんだが?
7-zip使って展開してるなら一時展開フォルダの指定させてほしいんだが?
Everything is Ok <- fuck なんだが?



61 名前:デフォルトの名無しさん [2020/03/22(日) 12:10:51 ID:F4lre3ad.net]
スレチなので7-zipのスレへどうぞ

62 名前:デフォルトの名無しさん mailto:sage [2020/03/22(日) 12:29:04 ID:7dJergc9.net]
>>59
C直下にフォルダー作ってそこでやった方がいいよ
たぶん

63 名前:デフォルトの名無しさん [2020/03/22(日) 14:03:20 ID:WkTC8Krl.net]
ghcを解凍するフォルダのセキュリティを、Everyoneに変更許可を与えると通ったわ
なんでそうなるのかは判らん。フォルダのリネーム(もしくはフォルダ間のファイル移動)に自分以外のアカウントが関わってて、
そいつが権限持ってないから拒否されたってことになるのか

それはそうと、stackの台詞眺めてると this may fail 多いな。自信ないのかよ
そんなんじゃ頼れないよ

64 名前:デフォルトの名無しさん mailto:sage [2020/03/22(日) 15:30:18.75 ID:RcMMm8Pa.net]
stackが新しいGHC(を使うStackage LTS)で警告出す件は本家にissue出とるね
Warnings about untested GHC and Cabal
https://github.com/commercialhaskell/stack/issues/5212

stackは去年の7月以来新バージョンのリリースが止まってる
(何かいざこざがあったようなことを目にしたような覚えが…)
https://github.com/commercialhaskell/stack/releases
コミットは止まってないようだけれど
https://github.com/commercialhaskell/stack/commits/master

65 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 18:40:03.52 ID:u3xw5MBv0.net]
謎のPermission Denied 問題の解決策は chcp 65001 かよやられた

それにしてもサンプルのビルドひとつすら乗り越えられず
あまつさえググることすら向き合えず
大望を抱いたあげく最初の石ころにつまづいて数日を無為に過ごすとは… ああ、

66 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 22:31:38.85 ID:5HSbnevP.net]
ドンマイ

67 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 16:09:50.75 ID:RWnXSfHI.net]
Haskellって勉強しておくといいことある?

68 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 19:26:27 ID:Irxv1x7O.net]
Haskell自体はクソの役にも立たないが、Haskellを勉強すると実用言語でプログラミングする際のコードが劇的に綺麗になる

69 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 19:37:30 ID:V4QUinUk.net]
綺麗になるんじゃなくてHaskellerにとって読みやすいコードを練成できるようになるだけでは

70 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 20:35:55.95 .net]
数年ぶりにハスケルやったらタブはやめろって明言してくるようになっててわろうたww



71 名前:デフォルトの名無しさん [2020/03/26(木) 20:45:53 ID:ylVms19z.net]
Haskellerにとって読みやすいコードわかる

MonadだのApplicativeだのを無理に再現しようとして
でも型システムがへぼいから限界あって買いてる方も楽しくないし
読む方の辛さは言わずもがなだしで誰も幸せにならない

72 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 23:26:28.22 ID:yOeobzsz.net]
他言語よりも深く考察され美しくまとまった言語上の概念がものすごく多数ある
抽象的な概念が他の言語より圧倒的に多くて、プログラミング言語全般についての理解を深めるのにとても役に立つ
比較的習得難易度の高いrust等の言語や、今後出てくるであろう新手の言語等も、haskellを知っていれば習得が容易になったり、深く理解して議論できるようになったりすると思う
実用アプリ作りたいだけならあんまやる必要ない

73 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 01:37:52.01 ID:HVPmfsVI.net]
モナドの説明見て一気に嫌になったな・・
結局書き換えをよしとするなら純粋関数型なんて言うのやめろよと
破壊操作無くしてまともにコードが書けないってことがわかってるなら最初からそのようにしておけと
どう言う目的で作った言語なのか知らないけど読めば読むほどイライラするねこれ
現実は酷いけど理想だけが飾り立てられているという印象

74 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 06:43:54 ID:ciiZuz5Z.net]
その批判は勉強不足という感じ

75 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 07:23:52.96 ID:7fKLUCpq.net]
そんなに間違ってはないけどな。
haskellの解釈としては「命令列」を構成して返しているから副作用はない!
副作用を起こしているのは実行系だ!
みたいな屁理屈だし。

76 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 10:39:34 ID:gM1jKcLP.net]
>>74
それhaskellの説明になってなくね?

77 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 11:19:04.85 ID:7fKLUCpq.net]
haskellの評価順序を考えた場合、そう解釈する以外ないと思うが。
他の説明があるなら聞きたいとこだよ。

78 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 12:07:06 ID:gM1jKcLP.net]
>>76
もう少し詳しくたのむ
評価順序を考えたらどうして命令列になんの?

79 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 12:12:13 ID:gM1jKcLP.net]
評価順序ってのは遅延評価のことか
doのことかもよくわからん

80 名前:デフォルトの名無しさん [2020/03/27(金) 12:16:47 ID:1lYTVmI1.net]
>結局書き換えをよしとするなら純粋関数型なんて言うのやめろよと
>破壊操作無くしてまともにコードが書けないってことがわかってるなら最初からそのようにしておけと

その批判はやや的外れ
誤解してる人が多いけど、Haskellは別に破壊的代入含む非純粋な計算を禁止しようとしてるのではない
Haskellのやろうとしてるのは、純粋な計算と非純粋な計算を型システムにおいてコンパイラが区別できるようにすることだけだぞ



81 名前:デフォルトの名無しさん [2020/03/27(金) 12:26:56.96 ID:1lYTVmI1.net]
というか正直モナドなんかそんな何回も何回も繰り返し議論の対象にするほどのもんでもないだろ…
HaskellスレなんだからHaskellerだけでもっとHaskellらしい話題がしたいのに、
定期的にHapkeller以外がきて水差してくよな
他の手続き方言語のスレでわざわざその言語よく知らない奴が来てifとかforの話を延々されたらどんな気分よ

82 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 13:41:08 ID:gM1jKcLP.net]
>>74は正しいの?

83 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 16:03:17.87 ID:bZjh3B7N.net]
正しいよ

84 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 17:41:48 ID:IjRdCSk7.net]
- Haskell自体はクソの役にも立たないが、
- 実用アプリ作りたいだけならあんまやる必要ない

何故だい? プログラミング言語なんてただの道具じゃないか。Haskellで良いプログラムが 書けるなら、使うべきなんだ。
『普通のやつらの上をいけ』!『普通のやつらの上をいけ』!

85 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 17:56:54 ID:gM1jKcLP.net]
>>82
説明頼む
命令列って何なの?

86 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 18:46:42.72 ID:inQsOLrL.net]
IO a は State# RealWorld -> (# State# RealWorld, a #) を newtypeしたものだって話じゃないか?
命令列っていうのはState# RealWorldの列ってことだろ、多分

87 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 18:50:49.13 ID:inQsOLrL.net]
言語ではState# RealWorldの列だけ作って副作用ないけど
処理系がState# RealWorldの列を一気にフラッシュしてるから
処理系レベルでは副作用が出るって事だろ

88 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 19:23:16 ID:7fKLUCpq.net]
大体そんな感じ。
IO を返す関数が「副作用をもたない」と解釈するとしたらそう考えるしかない。
とはいえ、IO が発生する関数とそうでない関数をちゃんと分けていい感じに使うって
発想は他の言語でも役に立つ考えだからそこはいいと思う。

89 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 19:40:29 ID:US1WE8+5.net]
>>83
目的は良いプログラムを書くことではなく役に立つプログラムを書くことだろう
お前のようにそこを履き違えてる奴が多いからHaskellがいつまでもクソの役にも立たないと言われ続けるんだよ

90 名前:デフォルトの名無しさん [2020/03/27(金) 19:46:20 ID:adWh10vX.net]
まともなHaskellのテキストがIO返す関数に対して副作用がないなんて書いてるの見たことないけど…



91 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 19:49:25 ID:bZjh3B7N.net]
>>84
IOアクションのことやろ

92 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 19:58:51.05 ID:inQsOLrL.net]
realworld Haskellって本のrealworldってghc におけるIOモナドの実装のこと言ってて
モナドの説明で度々出てくる『文脈』っていうのもその命令列のことだと理解してるんだが
どんなもん?

93 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 20:03:05.86 ID:EYGPwzDC.net]
そんな難しく考えなくても計算機に与える命令のつらなりってことじゃないの?
命令には純粋っぽい命令とそうでない命令があるけど、計算(評価)前ならどんな命令だろうが単なる値だから副作用もへったくれもないって理屈じゃね
実際はメモリー上の命令は全て状態だけど、書き換えられないように管理すれば純粋とみなせるってことだろ
例えば、
1+2*2^2^-1+3*3^3^-1
という式を考えた場合、これ全体を値として捉えることもできる
実際値として使おうとすると+、*、^の部分を命令として評価しないといけないけど、使い方によっては全部評価する必要はない
これに10足したかったら
11+2*2^2^-1+3*3^3^-1
で済ますこともできる
これを小数点以下10桁まで表示したくなった時、必要な桁まで計算(評価)すれば良い
&#8237;18.1551758356…
Haskellの基本的な考え方はこういうことでしょ

94 名前:デフォルトの名無しさん [2020/03/27(金) 20:16:36 ID:adWh10vX.net]
まずはっきりさせておきたいが、Haskellのテキストで
「命令列」なるものは出てこんし誰もそんなものを使ってモナドを説明しようとしてない。
あくまで「命令列」とは、>>74が自身でモナドを理解するために有用な概念だと見出し定義した用語と考えるべきだ

だからここで有意義な議論がしたいなら、まず目的を確認する必要がある。
我々は>>74さんの頭の中を理解したいのか?
それともモナドに対してより良い理解を形成したいのか?

95 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 20:19:07 ID:inQsOLrL.net]
遅延評価と考え方は似てると思う。状態の受け渡しとかが出てきてこんがらがる

96 名前:デフォルトの名無しさん [2020/03/27(金) 20:21:43 ID:inQsOLrL.net]
>>93
自分も>>74の理解で問題ないと思うんだよ

97 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 20:47:16.26 ID:oRj/lH5B.net]
IOモナドに副作用を追いやれることがどれくらい良いことなのかを議論するのは悪くないと思うけど、
副作用が無いなんて嘘付き!とかそもそもプログラムってのは副作用の塊だ!っていうのは誤解か誤読かフカシに騙されたかのどれかなので楽しくない話になる、と思う

98 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 20:49:07.27 ID:duAJ897u.net]
関数型と手続き型は共存するべき
関数型はマクロの性質を持っている

99 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 21:16:36.28 ID:7fKLUCpq.net]
>>93
別に厳密に何か言ってるわけでもないからあんたの思ってる通りでええよ。
ただの解釈だからこだわらずに勝手に理解したらいいさ。

100 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 21:17:09.88 .net]
言語設計者じゃなければ難しいこと考える必要なんてないんだ。ただの Haskell ユーザだろ?
(Haskellの)モナドは Haskell という基盤上で動作するDSLプラットフォームだよ。
各々が Haskell 上で動作するオレオレ言語を作れるんだ。
だから一度それを走らせれば、その中に他人の言語が干渉することはできない。
C++を書いてる途中でJavaコードを直接混ぜることは許されないというトートロジー。
他のDSLとはポートを作ってそこでデータを輸出入する

(Haskellの)モナドはC++コードにJavaコードが混ざらない事を保証してくれる
そういうイメージ

(Haskellの)モナドのライブラリには、その設計者の思想によるDSLの書き方がある。
それを知らずに型とだけ睨めっこしててもIQテストだよ



101 名前:デフォルトの名無しさん [2020/03/27(金) 21:54:14 ID:62v2q1lB.net]
>>96
Haskellの解説本・サイトは「副作用のないプログラミング!」のように喧伝し、
副作用がまるで悪いものであるかのように誤認させているからな。

医薬品の副作用は意図しない有害な作用なので避けるべきだが、プログラム言語の
副作用は数学的な意味で関数とは言えないだけで、意図した有益な作用だから何の
問題






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<342KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef