haskell
久しぶりにhaskellを触ったので、その際に調べたtips的な処理についてメモ リストのslice https://stackoverflow.com/questions/4597820/does-haskell-have-list-slices-i-e-python slice :: Int -> Int -> [a] -> [a] slice from to xs = take (to - from +…
久しぶりにhaskellを触った際によくわからなくなって調べたのでメモ とりあえずビルドしたいときのチートシート的にまとめておく 基本的にこちらに書いてある通り Getting Started Haskell Project with Nix | MaybeVoid nixはinstall済みだったが一応 ghcと…
yampaについて調べていると単純なswitchについての説明はいくつか見つかるのだが、pSwitchについてはなかなか見つからなかったのでわかったことをメモしておく。 こちらのブログとhaskanoidのソースコードを参考にした。 http://bitterharvest.hatenablog.co…
以前ハッカソンでnumberLinkのsolverを書いたことがあったが、ちょうどアルゴリズムの勉強がてらC++を勉強中だったので、そのときはC++で書いた。完全に手続き的な書き方だが。今回それを読みなおしてhaskellで書きなおしたので全体の概要やアルゴリズムにつ…
今年に入ってからParallel and Concurrent Programing in Haskellを読みつつその内容をブログに書いてきたが、一段落したのでまとめ。まず英語でよいならこちらのページですべて読める。 http://chimera.labs.oreilly.com/books/1230000000929/index.html本…
第14章の最後の部分はexeciseという位置づけになっている。ヒントが示されているのでそれに従って実装してみた。英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch14.html章の前半についてまとめたものはこちら d…
distributed-process - 分散処理(Parallel and Concurrent Programming in Haskell Chapter 14)英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch14.html前の章についてまとめたものはこちら http://jsapachehtm…
parallel and concurrent haskellの14章を読んでいてtyped channelを用いた実装をやってみた際、なかなかデバッグできず苦労したのでメモ。まず私の環境では以下のようにmoduleを分けて実装していた。 Channel.hs module Channel where data Message = Ping …
英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch13.htmlこのページで紹介しているコードはほとんど上記ページからの引用。 これまで並行処理で用いてきたスレッドを使って並列処理を行うという話。本の前半で扱…
parallel and concurrentの13章でとてもわかりづらいところがあったのでメモ英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch13.html#conc-par_00000029 今回調べたのは以下のコード(本から引用) subfind :: Str…
英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch12.html#sec_chatこのページで紹介しているコードはほとんど上記ページからの引用。 入力された値を数倍して返すというシンプルなサーバを元にチャットサーバを…
英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch12.htmlこのページで紹介しているコードはほとんど上記ページからの引用である。 これまで章で出てきた要素を使ってサーバアプリケーションを作成するサーバ型の…
英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch11.htmlこのページで紹介しているコードはほとんど上記ページからの引用である。第11章ではこれまでの章に学んだ並行処理の要素を使いやすい形にまとめる。 1…
英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch10.html前の章についてまとめたものはこちら http://jsapachehtml.hatenablog.com/entry/2015/02/28/085123STMは各処理をひとまとまりのアトミックな処理として…
第9章では引き続き非同期処理について英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch09.html 処理のキャンセルや時間待ちの処理が入ることはよくあるし対処しなければならない問題^Cで実行をキャンセルしたと…
例外について(Parallel and Concurrent Programming in Haskell Chapter 8)英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch08.html#sec_exceptions前後に非同期処理の話があるがそれは別にまとめることにするh…
以前まとめた第3章、第4章についてはこちら http://jsapachehtml.hatenablog.com/entry/2015/01/24/131408 http://jsapachehtml.hatenablog.com/entry/2015/01/31/221609英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000…
以前まとめた第3章についてはこちら http://jsapachehtml.hatenablog.com/entry/2015/01/24/131408英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch04.html 第2章、第3章ではEvalモナドを使い 遅延評価と密接…
以前まとめた第2章についてはこちら http://jsapachehtml.hatenablog.com/entry/2015/01/03/101754 http://jsapachehtml.hatenablog.com/entry/2015/01/18/143520英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/…
こちらの記事のつづき http://jsapachehtml.hatenablog.com/entry/2015/01/03/101754もともとの本の内容はこちらで読める http://chimera.labs.oreilly.com/books/1230000000929/ch02.html また、このページのコードは↑から引用した コードの全体は著者が公…
Parallel and Concurrent Programming in Haskell という本を以前読書会で読んだが、当時はあまり理解できなかった部分もあったのでもう一度読んでサンプルコードなど書いてみようと思い立った。この本はわかりやすいし並列並行プログラミングに関して必要な…
ghc-mod.vimでエラーが出た 具体的にはghc-modを5.2.1にupdateしたら.hsファイルを開いたときにエラーが出るようになった 文法エラーを表示する機能には影響していないようなのでほっておいてもいいが、起動時に毎回出るのは面倒なので調べてみた ちなみにgh…
すごいhaskell本の13章にあるチェスのknightの動きを求める練習問題を解いてみたのでメモ初期位置と目的位置、移動回数を指定して 移動できるならその経路をリストとして出力するようにした最終的なコードはこんな感じ import Control.Monad type Pos = (Int…
haskellを使っていてハマったところについてメモしておく データ構築子のexport, import 下のコードの場合、型構築子はexportされるが、データ構築子はexportされない。なので別のモジュールにて型名としてのFugaが使われているからといってFugaをデータとし…
勉強会の復習としてParallel and Concurrent Programming in Haskellの11章をまとめてみる(中盤の辺りについて) 前半についてはこちらに書いた http://jsapachehtml.hatenablog.com/entry/2014/04/03/23310111章初めの部分でwithAsyncという関数を作った。…
Parallel and Concurrent Programming in Haskellの読書会でasyncを使った並行処理について学んだので復習がてらメモ 本の内容はこちら(今回の内容は第11章の前半について) http://chimera.labs.oreilly.com/books/1230000000929/index.htmlなお、ブログ中…
初歩的な部分だけど自分なりに勉強になったのでメモしとく以下のような入力ファイルがあるとする sample.dat 1 2 3で、このファイルからの入力を[Int]としたいとすると以下のように書ける sample.hs main = do s <- getLine let ss = words s let ns = map r…