関数型プログラミング言語 Haskell について語るスレです。
haskell.org (公式サイト)
https://www.haskell.org/
前スレ
関数型プログラミング言語Haskell Part30
http://mevius.2ch.net/test/read.cgi/tech/1484491434/
関数型プログラミング言語Haskell Part31©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/09/27(水) 02:33:08.70ID:2XAqPuH2
657デフォルトの名無しさん
2018/07/08(日) 09:12:56.04ID:fmVgo5Ue 実験したら、やっぱり評価に必要な部分しかソートされなかったよ
実験は takeWhile じゃなく take でやった
[実験コード]
ucomp :: IORef Int -> Int -> Int -> Ordering
ucomp ref x y = unsafePerformIO $ do
modifyIORef ref (+1)
return $ compare x y
main = do
let g = mkStdGen 1
let xs = shuffle' [1..8] 8 g
rc <- newIORef 0
let ys = take 8 $ sortBy (ucomp rc) xs
putStrLn $ show $ maximum ys
c <- readIORef rc
putStrLn $ show c
take で取り出す要素数を8個と3個で実験し、show c の結果を比較
8個 c=19
3個 c=14
やっぱ遅延評価ってイイね
ベスト3を決めるのに他言語みたいに全部を評価する必要がない
ちなみに、100万個の要素でもやってみた
all c=19237801
3個 c=1413225
質問したけど、ひとりで納得してしまった、すまん
実験は takeWhile じゃなく take でやった
[実験コード]
ucomp :: IORef Int -> Int -> Int -> Ordering
ucomp ref x y = unsafePerformIO $ do
modifyIORef ref (+1)
return $ compare x y
main = do
let g = mkStdGen 1
let xs = shuffle' [1..8] 8 g
rc <- newIORef 0
let ys = take 8 $ sortBy (ucomp rc) xs
putStrLn $ show $ maximum ys
c <- readIORef rc
putStrLn $ show c
take で取り出す要素数を8個と3個で実験し、show c の結果を比較
8個 c=19
3個 c=14
やっぱ遅延評価ってイイね
ベスト3を決めるのに他言語みたいに全部を評価する必要がない
ちなみに、100万個の要素でもやってみた
all c=19237801
3個 c=1413225
質問したけど、ひとりで納得してしまった、すまん
658デフォルトの名無しさん
2018/07/08(日) 09:49:58.54ID:ZNji3Zip >>657
>ベスト3を決めるのに他言語みたいに全部を評価する必要がない
別に他言語でも全部を評価する必要はない。
https://ja.wikipedia.org/wiki/%E9%81%B8%E6%8A%9E%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0
>ベスト3を決めるのに他言語みたいに全部を評価する必要がない
別に他言語でも全部を評価する必要はない。
https://ja.wikipedia.org/wiki/%E9%81%B8%E6%8A%9E%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0
659デフォルトの名無しさん
2018/07/08(日) 10:45:22.88ID:JJmFxw3L どんな言語だろうが全部ソートすれば O(n*log(n)) で最小値や最大値を探すのは O(n)
この n と n*log(n) の差を無視できないなら
そもそも n と 100*n の差を無視するのもダメじゃないかと思う
この n と n*log(n) の差を無視できないなら
そもそも n と 100*n の差を無視するのもダメじゃないかと思う
660デフォルトの名無しさん
2018/07/08(日) 11:20:47.41ID:fmVgo5Ue >>658
いや、そうじゃなくてさ
上位m個の選択処理とソート処理とをソース上ではきっちり分けてるじゃん
ソースを読む人間にとってはすげー読みやすいわけよ
なのに内部処理的には2つが連携して、
必要なところまでしかソートされないだろ
選択処理のためにワザワザ特殊なソート処理をしなくてもさ
そこがすげーって感動してるんだよ
いや、そうじゃなくてさ
上位m個の選択処理とソート処理とをソース上ではきっちり分けてるじゃん
ソースを読む人間にとってはすげー読みやすいわけよ
なのに内部処理的には2つが連携して、
必要なところまでしかソートされないだろ
選択処理のためにワザワザ特殊なソート処理をしなくてもさ
そこがすげーって感動してるんだよ
661デフォルトの名無しさん
2018/07/08(日) 11:30:44.71ID:Xnl3te8c まあソートなんて如何にもキャッシュ次第なアルゴリズムで
連結リストと遅延評価のO(N)が配列と正格評価のO(NlogN)に
現実的なNの範囲で勝てるのかものかどうか・・・
連結リストと遅延評価のO(N)が配列と正格評価のO(NlogN)に
現実的なNの範囲で勝てるのかものかどうか・・・
662デフォルトの名無しさん
2018/07/08(日) 13:00:05.06ID:MJ8iSrG7 まるで永久機関の話を見ているようだ
663デフォルトの名無しさん
2018/07/08(日) 22:57:14.98ID:wt6yCeB5 具体例や比喩で抽象度を下げるのは良い
だが「永久機関っぽいもの」の集合を作ったらむしろ抽象度が上がり収拾がつかなくなる
だが「永久機関っぽいもの」の集合を作ったらむしろ抽象度が上がり収拾がつかなくなる
664デフォルトの名無しさん
2018/07/09(月) 10:04:31.05ID:pOD9hGUD arrayパッケージのData.Array.(!)はO(1)ですか。
665デフォルトの名無しさん
2018/07/11(水) 00:08:42.37ID:l1CMhfek Haskellの採用とユーザ満足度が向上
https://www.infoq.com/jp/news/2018/07/haskell-user-survey-2018
https://www.infoq.com/jp/news/2018/07/haskell-user-survey-2018
666デフォルトの名無しさん
2018/07/13(金) 00:35:06.69ID:vrIUPTb8 発展編! Haskellで「型」のポテンシャルを最大限に引き出すには?【第二言語としてのHaskell】
https://employment.en-japan.com/engineerhub/entry/2017/10/03/110000
https://employment.en-japan.com/engineerhub/entry/2017/10/03/110000
667デフォルトの名無しさん
2018/07/14(土) 09:44:23.46ID:sMbeASmt yampaムズ過ぎ
初心者用のシンプルで教育的なチュートリアルって無いの?
英語でもいいから教えて
初心者用のシンプルで教育的なチュートリアルって無いの?
英語でもいいから教えて
668デフォルトの名無しさん
2018/07/15(日) 00:11:52.51ID:89Btz4it >>677
Yampaエアプだが、このサイトが良さそうだ
http://bitterharvest.hatenablog.com/archive/category/Haskellプログラミング講座(上級編:ゲーム)
Yampaエアプだが、このサイトが良さそうだ
http://bitterharvest.hatenablog.com/archive/category/Haskellプログラミング講座(上級編:ゲーム)
669デフォルトの名無しさん
2018/07/15(日) 05:50:15.76ID:uHtx5/Ti >>668
申し訳ない
そこは、FRPの基礎概念である「ビヘイビアとイベント」と、
Yampaの基礎概念である「シグナル関数」との繋がりが言葉で説明されていないんだ
コードを書きまくって慣れろ、って感じ
申し訳ない
そこは、FRPの基礎概念である「ビヘイビアとイベント」と、
Yampaの基礎概念である「シグナル関数」との繋がりが言葉で説明されていないんだ
コードを書きまくって慣れろ、って感じ
670デフォルトの名無しさん
2018/07/15(日) 08:13:24.43ID:89Btz4it >>669
フーム
ビヘイビアは Time → a でイベントは [ (Time, a) ]
シグナル関数は (Time → a) → (Time → b)
のようなことが 「FRPの話 - maoeのブログ」で少しだけ説明されているね。
もう少し長い解説をElm開発者の人が論文に書いてた。
http://elm-lang.cn/assets/papers/concurrent-frp.pdf
フーム
ビヘイビアは Time → a でイベントは [ (Time, a) ]
シグナル関数は (Time → a) → (Time → b)
のようなことが 「FRPの話 - maoeのブログ」で少しだけ説明されているね。
もう少し長い解説をElm開発者の人が論文に書いてた。
http://elm-lang.cn/assets/papers/concurrent-frp.pdf
671デフォルトの名無しさん
2018/07/15(日) 08:23:05.35ID:89Btz4it >>665 ほらね、Haskell普及のためにはツールの拡充が必要なんだよ。
https://github.com/alanz/vscode-hie-server/pull/83
これこれこういうのを待ってた。emacs対応はよ
https://github.com/alanz/vscode-hie-server/pull/83
これこれこういうのを待ってた。emacs対応はよ
672デフォルトの名無しさん
2018/07/15(日) 09:30:20.96ID:uHtx5/Ti673デフォルトの名無しさん
2018/07/27(金) 11:27:32.40ID:qBTTu3Zk importのhidingとかqualifiedとか適当にやってるせいで、いつも収拾がつかなくなってる。
ブラックリストかホワイトリストか、asで名前付けるのはどんな時か。みんなどうしてるの?
ブラックリストかホワイトリストか、asで名前付けるのはどんな時か。みんなどうしてるの?
674デフォルトの名無しさん
2018/07/27(金) 21:52:57.03ID:lmpcLfYu675デフォルトの名無しさん
2018/07/29(日) 20:22:22.75ID:tC3jGbCj インポートリストをざっと見ることで、モジュールの役目が何となく掴めて嬉しい。たとえば
import Data.Text.Lazy
import Text.Parsec
だったら、ああなんかをパーズするんだな、と分かる。
一方、
import Math (sin,cos,tan)
みたいになっていても、このモジュールは三角関数を使うやつ、ということは判るが、それが大して役に立つとは思えない。
だから値の明示的インポートはやめて、hidingだけに統一しようかな、と考えてる。
値がバッティングして、かつ両方使いたいならそのモジュールは qualified する。
import Data.Text.Lazy
import Text.Parsec
だったら、ああなんかをパーズするんだな、と分かる。
一方、
import Math (sin,cos,tan)
みたいになっていても、このモジュールは三角関数を使うやつ、ということは判るが、それが大して役に立つとは思えない。
だから値の明示的インポートはやめて、hidingだけに統一しようかな、と考えてる。
値がバッティングして、かつ両方使いたいならそのモジュールは qualified する。
676デフォルトの名無しさん
2018/07/29(日) 20:25:02.63ID:tC3jGbCj >>674
基本大文字を拾って as している。
import qualified Data.Map as M
import qualified Data.Set as S
だが
import qualified Text.Regex.TDFA as TDFA
つらい
基本大文字を拾って as している。
import qualified Data.Map as M
import qualified Data.Set as S
だが
import qualified Text.Regex.TDFA as TDFA
つらい
677デフォルトの名無しさん
2018/07/31(火) 21:58:40.13ID:6DhCQI2V678デフォルトの名無しさん
2018/08/11(土) 12:54:39.21ID:dGCQYNDS get programming with haskell 読み終わった。
679デフォルトの名無しさん
2018/08/12(日) 03:22:15.33ID:fh95vopi >>678
感想は?
感想は?
680デフォルトの名無しさん
2018/08/12(日) 09:41:11.96ID:mCQrOvpG >>678
凄いハスケルより初心者向きで実用的でわかりやすい。
凄いハスケルより初心者向きで実用的でわかりやすい。
681デフォルトの名無しさん
2018/08/12(日) 11:23:29.51ID:1lJIW3H3682デフォルトの名無しさん
2018/08/12(日) 11:30:59.98ID:mCQrOvpG >>681
アプリケーションは作らないけれどコマンドラインのプログラムは作る。
アプリケーションは作らないけれどコマンドラインのプログラムは作る。
683デフォルトの名無しさん
2018/08/12(日) 17:25:24.07ID:1lJIW3H3 もしかしてFRPとマルチスレッドって相性悪い?
684デフォルトの名無しさん
2018/08/12(日) 18:12:55.83ID:HMPSYWub 新分子設計は並列処理を酷使するだろうが
強化プラスチックが特別どうということはないだろう
強化プラスチックが特別どうということはないだろう
685デフォルトの名無しさん
2018/08/12(日) 18:50:22.57ID:RPd+D2gX >>684
FRPの有限要素解析?
FRPの有限要素解析?
686デフォルトの名無しさん
2018/08/12(日) 19:11:53.89ID:OVUWpXpl687デフォルトの名無しさん
2018/08/13(月) 06:20:04.15ID:HYnqBmQs いいねえ。気軽に使えるからコマンドラインは好き。
自分で使うツールを作るのが一番モチベ上がるね
自分で使うツールを作るのが一番モチベ上がるね
688デフォルトの名無しさん
2018/08/13(月) 14:03:54.60ID:DTF7R3qv Get Programming with Haskellはタイトルのとおり初心者向けの本だよ
600ページの本で400ページ超えたところでstack導入して、
あとは、簡単なコマンドラインツール、http、JSON、dbおさわりくらい
それまでは、ghci使ってhaskellの学習
600ページの本で400ページ超えたところでstack導入して、
あとは、簡単なコマンドラインツール、http、JSON、dbおさわりくらい
それまでは、ghci使ってhaskellの学習
689デフォルトの名無しさん
2018/08/26(日) 22:17:17.61ID:hKYk5Tea Haskell開発ワークフロー。お前らはどれ?
1. stackの--file-watch
2. ghciの:r
3. ghcid
4. エディタのフック
https://www.fpcomplete.com/blog/2018/08/haskell-development-workflows-4-ways
1. stackの--file-watch
2. ghciの:r
3. ghcid
4. エディタのフック
https://www.fpcomplete.com/blog/2018/08/haskell-development-workflows-4-ways
690デフォルトの名無しさん
2018/08/27(月) 22:15:37.17ID:8S3lymML 今やすいぞ 多分半額程度
ソフトウェアシステムアーキテクチャ構築の原理 第2版
https://www.amazon.co.jp/ソフトウェアシステムアーキテクチャ構築の原理-第2版-ニック-ロザンスキ-ebook/dp/B00ZF44J0I/ref=tmm_kin_title_0?_encoding=UTF8&qid=1535375513&sr=1-1
ソフトウェアシステムアーキテクチャ構築の原理 第2版
https://www.amazon.co.jp/ソフトウェアシステムアーキテクチャ構築の原理-第2版-ニック-ロザンスキ-ebook/dp/B00ZF44J0I/ref=tmm_kin_title_0?_encoding=UTF8&qid=1535375513&sr=1-1
691デフォルトの名無しさん
2018/08/29(水) 13:20:47.63ID:nTrDfIjn >>689
俺は2
俺は2
692デフォルトの名無しさん
2018/09/04(火) 09:34:44.70ID:0nZVvdsT カリー化された関数の表記がよく分かりません。
add' :: Int -> (Int -> Int)
add' x y = x + y
↑これはどうやって解釈すればいいのでしょうか?
add' は関数を返す関数であるにもかかわらず、 = x + y となっているので数を返す関数のように見えます。
↓このλ式を使った表記は何の問題もないと思います。
add = \x -> (\y -> x + y)
add' :: Int -> (Int -> Int)
add' x y = x + y
↑これはどうやって解釈すればいいのでしょうか?
add' は関数を返す関数であるにもかかわらず、 = x + y となっているので数を返す関数のように見えます。
↓このλ式を使った表記は何の問題もないと思います。
add = \x -> (\y -> x + y)
693デフォルトの名無しさん
2018/09/04(火) 09:40:03.69ID:0nZVvdsT add x = \y -> x + y
これでも問題ないと思います。
これでも問題ないと思います。
694デフォルトの名無しさん
2018/09/04(火) 10:34:46.73ID:ntR3woJY Int -> (Int -> Int) も
Int -> Int -> Int も同じやろ
add 1 2 としたらIntになるし
add 1 としたらInt -> Intの関数が得られる
それだけ
更に引数3つとるaddなら
add = \x -> (\y -> (\z -> x + y + z))
と同じ意味だし、haskellはデフォでそういう仕組になってるってことやろ
Int -> Int -> Int も同じやろ
add 1 2 としたらIntになるし
add 1 としたらInt -> Intの関数が得られる
それだけ
更に引数3つとるaddなら
add = \x -> (\y -> (\z -> x + y + z))
と同じ意味だし、haskellはデフォでそういう仕組になってるってことやろ
695デフォルトの名無しさん
2018/09/04(火) 10:40:17.26ID:0nZVvdsT >>694
ありがとうございます。
add' :: Int -> (Int -> Int)
add' x y = x + y
↑この表記って、よくない表記じゃないですか?
add' x y = x + y
↑これをみて、型が add' :: Int -> (Int -> Int) だとはとても分かりません。
ありがとうございます。
add' :: Int -> (Int -> Int)
add' x y = x + y
↑この表記って、よくない表記じゃないですか?
add' x y = x + y
↑これをみて、型が add' :: Int -> (Int -> Int) だとはとても分かりません。
696デフォルトの名無しさん
2018/09/04(火) 10:48:31.75ID:W1MTXd47 じゃあどんな型だと思うんだい?
697デフォルトの名無しさん
2018/09/04(火) 10:48:48.98ID:ntR3woJY 逆にそれ見たらどういう型だと思った?
Int -> Int -> Int
って思ったんじゃない?
なんの本読んでるかしらんけど
例えば add x y z なら Int -> Int -> Int -> Int だけど
実際には
Int -> (Int -> (Int -> Int))
こうなってるってことを言いたいんやろ
Int -> Int -> Int
って思ったんじゃない?
なんの本読んでるかしらんけど
例えば add x y z なら Int -> Int -> Int -> Int だけど
実際には
Int -> (Int -> (Int -> Int))
こうなってるってことを言いたいんやろ
698デフォルトの名無しさん
2018/09/04(火) 10:50:47.26ID:0nZVvdsT699デフォルトの名無しさん
2018/09/04(火) 10:52:13.57ID:0nZVvdsT 1 2
のように整数をスペース区切りで二つ並べたものに対して、
1 + 2
を対応させる関数に見えます。
のように整数をスペース区切りで二つ並べたものに対して、
1 + 2
を対応させる関数に見えます。
700デフォルトの名無しさん
2018/09/04(火) 10:54:55.24ID:0nZVvdsT 関数を返す関数なんですから、
=
の右には数ではなく関数を書くべきです。
=
の右には数ではなく関数を書くべきです。
701デフォルトの名無しさん
2018/09/04(火) 10:57:59.07ID:0nZVvdsT f x = x + 2
などの例を見て、
f ● = ■
という表記は、
f(●) = ■
という意味かと思います。
などの例を見て、
f ● = ■
という表記は、
f(●) = ■
という意味かと思います。
702デフォルトの名無しさん
2018/09/04(火) 11:29:45.35ID:ntR3woJY add は関数を返す関数じゃなくて引数を2つとって値を返す関数やろ
そこでもう勘違いしとる
add 2 3 の結果は関数じゃなくて値やろ?
add 2 のように引数を一個だけ渡したら部分適用されて引数を一個とる関数が返るってだけや
haskellはそういう部分適用できる関数を書きやすいように
add x y = x + y を add = \x -> (\y -> x + y)に自動で変換してくれるってだけ
糖衣構文ってやつ
嫌なら全部ラムダ式で書けばいいよ
そこでもう勘違いしとる
add 2 3 の結果は関数じゃなくて値やろ?
add 2 のように引数を一個だけ渡したら部分適用されて引数を一個とる関数が返るってだけや
haskellはそういう部分適用できる関数を書きやすいように
add x y = x + y を add = \x -> (\y -> x + y)に自動で変換してくれるってだけ
糖衣構文ってやつ
嫌なら全部ラムダ式で書けばいいよ
703デフォルトの名無しさん
2018/09/04(火) 11:41:42.58ID:W1MTXd47 >>698
じゃああなたが今勉強してるカリー化って何なんですかね?
じゃああなたが今勉強してるカリー化って何なんですかね?
704デフォルトの名無しさん
2018/09/04(火) 12:05:07.87ID:/45N32wx **argv :: char
*argv :: char*
argv :: char**
add' x y :: Int
add' x :: a -> Int
add' :: b -> a -> Int
C言語を学習した人はHaskellも分かる
これが知能だ
*argv :: char*
argv :: char**
add' x y :: Int
add' x :: a -> Int
add' :: b -> a -> Int
C言語を学習した人はHaskellも分かる
これが知能だ
705デフォルトの名無しさん
2018/09/04(火) 12:52:41.14ID:JkSql3w1 Haxe では関数の型は、
function sum (a:Int, b:Int) : Int
Int -> Int -> Int
引数1 -> 引数2 -> 戻り値
最後は戻り値
function sum (a:Int, b:Int) : Int
Int -> Int -> Int
引数1 -> 引数2 -> 戻り値
最後は戻り値
706デフォルトの名無しさん
2018/09/04(火) 12:54:41.46ID:tHCjwI0T707デフォルトの名無しさん
2018/09/04(火) 14:03:08.32ID:TMcC/EnP 通りすがりだけど勉強になった
haskell面白そうだな
haskell面白そうだな
708デフォルトの名無しさん
2018/09/04(火) 20:06:44.00ID:f+p4hPZb Haskellちょっといじってると楽しいけどこれで飯食うのは自分には絶対無理という確信がある
709デフォルトの名無しさん
2018/09/04(火) 20:32:29.35ID:kOsSso2/ Haskellで食っていきたい
710デフォルトの名無しさん
2018/09/04(火) 21:00:34.43ID:jmLwKshs Haskell丼食いたい
711デフォルトの名無しさん
2018/09/05(水) 02:13:16.34ID:sfHxtAx4 市場を作れ
712デフォルトの名無しさん
2018/09/05(水) 02:29:20.15ID:XBVLJBKG まずはHaskellの独壇場となるニッチ市場を開拓しないとな
どこかある?
どこかある?
713デフォルトの名無しさん
2018/09/05(水) 02:54:04.71ID:MYQmiXId 写像をドメイン、コドメインのみ与えて定義するのが簡単にできればちょっと優位にたてる分野はある
714デフォルトの名無しさん
2018/09/05(水) 17:02:07.24ID:7oDYcpPT >>713
もう少し詳しく教えて
もう少し詳しく教えて
715デフォルトの名無しさん
2018/09/05(水) 17:04:52.63ID:7oDYcpPT いまのHaskellには何が足らないのか。どんな分野で強みが活きるのか
716デフォルトの名無しさん
2018/09/05(水) 20:52:06.57ID:4jTvsEmq haskellでddd, cqrs, esのやり方を教えろください
717デフォルトの名無しさん
2018/09/07(金) 12:23:22.72ID:bXCAi+24 DDDが活きてくる(と見込める)ほどの規模の案件をhaskellで組むプロジェクトって凄いな
本格的にhaskellを導入してるんだね
本格的にhaskellを導入してるんだね
718デフォルトの名無しさん
2018/09/07(金) 18:05:22.36ID:jiol9czZ719デフォルトの名無しさん
2018/09/07(金) 19:04:41.60ID:2UbG8YkS >>718
DDD は Extensible Effect と Tagless final がよく合う
DDD は Extensible Effect と Tagless final がよく合う
720デフォルトの名無しさん
2018/09/07(金) 23:54:56.71ID:2UbG8YkS Haskellに欠けているのは中級者向けの書籍なのかも
721デフォルトの名無しさん
2018/09/08(土) 00:07:42.03ID:8HsWZyyw コンセプトは無茶苦茶面白いのに、肝心の実装が学級的で好き放題に流動的で恐ろしく無責任だからでは
722デフォルトの名無しさん
2018/09/08(土) 13:16:38.32ID:kGQ5zdyq >>721
そうなのか。具体的にはどのあたりが?
そうなのか。具体的にはどのあたりが?
723デフォルトの名無しさん
2018/09/10(月) 20:55:39.03ID:Tuk3Smzo Functional Design and Architecture
https://www.reddit.com/r/haskell/comments/6ck72h/functional_design_and_architecture/
素晴らしい、応援したい
https://www.reddit.com/r/haskell/comments/6ck72h/functional_design_and_architecture/
素晴らしい、応援したい
724デフォルトの名無しさん
2018/09/11(火) 06:18:11.27ID:xFzcqeSI 発売されたら買おうかな
725デフォルトの名無しさん
2018/09/11(火) 20:55:06.43ID:GxY7LXz/ ひゃっほおおおう! ビルド通ったぜ
stackageの可能な限り全部の総計2352パッケージを含むプロジェクトのビルドがやっと通った。
もはや ghci をいったん落として stack.yaml と cabal ファイルにパッケージを追記し... などという面倒をしなくても
ただ import するだけでそれが利用可能になる。
stackageの可能な限り全部の総計2352パッケージを含むプロジェクトのビルドがやっと通った。
もはや ghci をいったん落として stack.yaml と cabal ファイルにパッケージを追記し... などという面倒をしなくても
ただ import するだけでそれが利用可能になる。
726デフォルトの名無しさん
2018/09/15(土) 18:42:49.12ID:UVc1X0kV spacemacsのinteroでデバッグできてる人います?
replを立ち上げた後、デバッグしようとする(spc m d d)と、
No Haskell session associated with this debug buffer.
てエラーが出て、先に進まないです。
上記はhaskell-debug.elの中に出てくるエラー文で、
上で立ち上げたrepl(stack ghci)がsessionとして認識されてないのが原因?な気がしますが、力及ばずって感じです。
replを立ち上げた後、デバッグしようとする(spc m d d)と、
No Haskell session associated with this debug buffer.
てエラーが出て、先に進まないです。
上記はhaskell-debug.elの中に出てくるエラー文で、
上で立ち上げたrepl(stack ghci)がsessionとして認識されてないのが原因?な気がしますが、力及ばずって感じです。
727デフォルトの名無しさん
2018/09/16(日) 08:20:46.91ID:qJ8HI8bW728デフォルトの名無しさん
2018/09/16(日) 22:36:53.37ID:/Gv7qrCh すみません言語の話題から少し外れますが、
Windows10環境で
WinGHCiコンソール(ver 1.0.6)を使っているのですが
表示フォントをコンソラス等にしても
滑らかな文字表示がされず
メモ帳エディタの様な細いジャギー文字表示になります。
何か環境を弄ったり外部設定ファイルを書き換えたりして
外国のユーザー画面みたいな滑らか文字表示にする方法を
もしご存知でしたら教えて下さい。
Windows10環境で
WinGHCiコンソール(ver 1.0.6)を使っているのですが
表示フォントをコンソラス等にしても
滑らかな文字表示がされず
メモ帳エディタの様な細いジャギー文字表示になります。
何か環境を弄ったり外部設定ファイルを書き換えたりして
外国のユーザー画面みたいな滑らか文字表示にする方法を
もしご存知でしたら教えて下さい。
729デフォルトの名無しさん
2018/09/17(月) 17:50:28.07ID:tAsBi2aZ ポールフダックの音楽/Haskellの本が延期しまくりでつらみ
慰めに手を出してみたreact+reduxが割と面白くてjavascriptおじさんになりそう
慰めに手を出してみたreact+reduxが割と面白くてjavascriptおじさんになりそう
730デフォルトの名無しさん
2018/09/18(火) 15:50:49.67ID:zscrEVSG ハスケルミュージックスクールってやつ
なら無料で読めるドラフトバージョンのやつよんだけど糞つまらんよ
ほとんどがライブラリーの使い方の説明しか書いてない
なら無料で読めるドラフトバージョンのやつよんだけど糞つまらんよ
ほとんどがライブラリーの使い方の説明しか書いてない
731デフォルトの名無しさん
2018/09/18(火) 23:03:29.52ID:5HE01N22 その本です
定価で買うような本じゃなさそうですね…
定価で買うような本じゃなさそうですね…
732デフォルトの名無しさん
2018/09/18(火) 23:04:16.22ID:5HE01N22 遅れましたがありがとう。
733デフォルトの名無しさん
2018/09/19(水) 23:56:22.00ID:Pb0Tb1M0 木構造を表現するときの、「節」とか「葉」って、どう読みますか?
734デフォルトの名無しさん
2018/09/20(木) 12:01:53.37ID:7WHuQIEO ふし
よう
よう
735デフォルトの名無しさん
2018/09/20(木) 12:32:11.09ID:pCCtAD0d736デフォルトの名無しさん
2018/09/20(木) 15:10:54.04ID:x+bQf+aM 木をきと読むのならふし、は、
木をもくと読むのならせつ、よう
になる
木をもくと読むのならせつ、よう
になる
737デフォルトの名無しさん
2018/09/20(木) 19:43:33.25ID:lFTDGMpz 未評価オブジェクトの thunk の語源って何?
738デフォルトの名無しさん
2018/09/20(木) 20:48:30.00ID:xkI4bT5j739デフォルトの名無しさん
2018/09/20(木) 21:06:35.17ID:mjuqlfQO thunk you
740デフォルトの名無しさん
2018/09/20(木) 21:15:43.07ID:Qp++lnrA >>738
あんがと
あんがと
741デフォルトの名無しさん
2018/09/20(木) 22:10:00.23ID:mC+zbID1 カリー=ハワード同型
https://ideone.com/RSvVYo
https://ideone.com/RSvVYo
742デフォルトの名無しさん
2018/09/20(木) 22:11:42.05ID:92zkwrbu743デフォルトの名無しさん
2018/09/20(木) 22:24:45.13ID:92zkwrbu すみません、733です
音訓(違うかな?)いずれかに寄せるべきと感じていたからです
他の方々もありがとうございました
音訓(違うかな?)いずれかに寄せるべきと感じていたからです
他の方々もありがとうございました
744デフォルトの名無しさん
2018/09/20(木) 22:59:01.96ID:O5Bw6BVk >>743
グラフ理論だと、文献にもよるけど、道、路、小道、歩道とか出てきて、統一不能感。
グラフ理論だと、文献にもよるけど、道、路、小道、歩道とか出てきて、統一不能感。
745デフォルトの名無しさん
2018/09/21(金) 11:17:49.00ID:pJEikkxu メモ化とスペースリークが本質的に同じもので、
言わば発酵と腐敗の関係の様なものだと知ったときは感動した。
言わば発酵と腐敗の関係の様なものだと知ったときは感動した。
746デフォルトの名無しさん
2018/09/21(金) 16:12:03.67ID:kcyxUCNO 例えw
747デフォルトの名無しさん
2018/09/22(土) 03:54:02.44ID:iTw0SS1T >>744
path でええやん
path でええやん
748デフォルトの名無しさん
2018/09/22(土) 05:09:30.37ID:1NyjNSxI749デフォルトの名無しさん
2018/09/23(日) 15:45:23.97ID:f8u3bg2b Coerce知らなかった。newtypeを自動で剥がしてくれる便利なやつ
import Data.Semigroup
import Control.Arrow
import Data.Coerce
aggregate :: [Int] -> (Maybe Int,Int)
aggregate' :: [Int] -> (Maybe Int,Int)
aggregate = (fmap getMax *** getSum) . foldMap (Just . Max &&& Sum)
aggregate' = coerce . foldMap (Just . Max &&& Sum)
https://speakerdeck.com/konn/ben-dang-hasugoi-newtype
import Data.Semigroup
import Control.Arrow
import Data.Coerce
aggregate :: [Int] -> (Maybe Int,Int)
aggregate' :: [Int] -> (Maybe Int,Int)
aggregate = (fmap getMax *** getSum) . foldMap (Just . Max &&& Sum)
aggregate' = coerce . foldMap (Just . Max &&& Sum)
https://speakerdeck.com/konn/ben-dang-hasugoi-newtype
750デフォルトの名無しさん
2018/09/30(日) 08:19:13.93ID:0APHfRwQ リストの要素がすべて異なる場合はTrue、
一つでも同じものがあれば False を返す関数を作りたい。
私が思いつく限りでは、次の方法が効率的には最適解だと思うのだが、どうだろうか。
リストが Eq と Ord のインスタンスであるという制限をかけた上で、
まずリストをソートし、それから隣の要素同士で同値関係を調べる。
ちなみに、これは○○問題などと名前がついているのだろうか。
一つでも同じものがあれば False を返す関数を作りたい。
私が思いつく限りでは、次の方法が効率的には最適解だと思うのだが、どうだろうか。
リストが Eq と Ord のインスタンスであるという制限をかけた上で、
まずリストをソートし、それから隣の要素同士で同値関係を調べる。
ちなみに、これは○○問題などと名前がついているのだろうか。
751デフォルトの名無しさん
2018/09/30(日) 14:27:30.56ID:3FJv0aaM 名前をつけるとしたらグラフ○○かな
グラフ簡約のように木をグラフに変える問題
グラフ簡約のように木をグラフに変える問題
752デフォルトの名無しさん
2018/09/30(日) 14:28:16.49ID:fYmelBV3 なんでソートするん?
753デフォルトの名無しさん
2018/09/30(日) 14:56:02.92ID:HUnS5YBa ソートは不要だし、どの言語でもdictionary/mappingにして要素数見るだけの作業のような
754デフォルトの名無しさん
2018/09/30(日) 15:13:03.29ID:0APHfRwQ >>752
ソートすれば、隣同士の要素の同値関係を調べるだけでよくなるから。
n個の要素を持つ未ソートリストの場合、
リストの第0要素を第1要素と、第2要素と・・・第n要素と比較する。
次にリストの第1要素を第2要素と・・・第n要素と比較する。
とやって、結局 O(n^2) の計算量が必要になる。
ソートするなら O(n log n) で済む。
と思ったけど、オレ勘違いしてるかな。
すまん、修理に出したPCがまだ帰ってこず、
試して速度比較できる環境にないんだ。
ソートすれば、隣同士の要素の同値関係を調べるだけでよくなるから。
n個の要素を持つ未ソートリストの場合、
リストの第0要素を第1要素と、第2要素と・・・第n要素と比較する。
次にリストの第1要素を第2要素と・・・第n要素と比較する。
とやって、結局 O(n^2) の計算量が必要になる。
ソートするなら O(n log n) で済む。
と思ったけど、オレ勘違いしてるかな。
すまん、修理に出したPCがまだ帰ってこず、
試して速度比較できる環境にないんだ。
755デフォルトの名無しさん
2018/09/30(日) 15:14:19.07ID:0APHfRwQ756デフォルトの名無しさん
2018/09/30(日) 15:21:38.02ID:0APHfRwQ757デフォルトの名無しさん
2018/09/30(日) 16:45:52.09ID:e88wFP8G 一般的に同値関係とは推移律が成り立ってる関係のことを言うので
全ての要素に対して先頭の要素と同値関係が成り立つのなら任意の要素間で同値関係が成り立つ
ちなみにソートして全探索を早く打ち切らせるテクニックのことは貪欲法という
全ての要素に対して先頭の要素と同値関係が成り立つのなら任意の要素間で同値関係が成り立つ
ちなみにソートして全探索を早く打ち切らせるテクニックのことは貪欲法という
■ このスレッドは過去ログ倉庫に格納されています
