通常のghciで開くとlibまたはexe側でghciが開く $ stack ghci テスト側で開きたい時はテストスイート名を明示的に指定する。 $ stack ghci :RFC5646-test
name: hoge tests: foo-test: main: Spec.hs source-dirs: test bar-doctest: main: test/doctests.hs と2つのテストスイートfoo-testとbar-doctestを定義する。 このときstack testでテストが実行されるが、両方とも実行される。 片方だけ実行したい場合は …
Regrex {min, max} for Attoparsec
なんらかのデータを取得する処理をして、あればそれを使い、なければ、別途データを取得する というロジックは、よくあるのではないでしょうか。 例えば、このような場合です。 import qualified Data.HashMap.Lazy as HML m = HML.fromList [("k1", "**"), …
Data.Functor.Contravariant covariant functor ~~> produce something contravariant functor ~~> consume something (>$) = contramap . const const :: a -> b -> a contramap :: Contravariant f => (a -> b) -> f b -> f a contrampa . const = x -> y …
haskell/lens.md at master · lotz84/haskell · GitHub haskell - How to write an instance of Control.Lens.AT - Stack Overflow Oleg's gists - Glassery
lambda > import Control.Lens lambda > :t iso iso :: (Functor f, Profunctor p) => (s1 -> a1) -> (b1 -> t1) -> p a2 (f b2) -> p s2 (f t2) lambda > let foo = iso (\((a,b),c)->(a,(b,c)) (\(a,(b,c))->((a,b),c))) lambda > let foo = iso (\((a,b),…
Preludeにあるheadは安全ではない lambda > import Control.Lens.Cons lambda > head [1,2,3] 1 lambda > head [] *** Exception: Prelude.head: empty list Safeパッケージがある。 lambda > import Safe lambda > headMay [1,2,3] Just 1 lambda > headMay…
Infinite loop on Attopersec
JSON access by Lens
Reader Pattern The ReaderT Design Pattern MichaelXavier.net - Enterprise Haskell Pattern: Lensed Reader MichaelXavier.net - Enterprise Haskell Pattern: Lensed Reader Has Pattern The Has Type Class Pattern – Hacker Noon Handle Pattern jaspe…
paserで状態を管理したい場合があります。 Attoparsec attoparsecでは、ライブラリ自体で、parser利用者側の状態を管理する仕組みがありません(間違っているかも)。なので、下記にあるとおり、StateTを使うことになります。 haskell - Does Attoparsec sup…
Text.ParserCombinators.Poly.State パーサーで状態を扱いたいと思って、Polyperseを見ていました。Stete用のコンビネータがあるのですが、そのモジュールには基本的なコンビネータがないので、どうしたものかと思いました。Steteでも使えるようにText.Perse…
Haskellはドット力が必要 Power of Dots
polyparse: A variety of alternative parser combinator libraries. Polyparse example
SQLServer Expressの入手 SQL Server 2017 Express エディション | Microsoft SQLServer Management Studioの入手 SQL Server Management Studio (SSMS) のダウンロード | Microsoft Docs SSMSを起動 -> Windows認証でログイン サーバを選択 -> プロパティ -…
includeするファイルは良しなに読み込んでくれる。 An example of including template in EDE
Custom function Example of EDE
履歴はghci間で共有されているようです。 ghciに入りなにか入力する。 $ ghci GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help Prelude> xxxxxxx <interactive>:1:1: error: Variable not in scope: xxxxxxx Prelude> :q Leaving GHCi. stack ghciを起動し</interactive>…
MySQL側はテーブルのcharsetをutf8mb4などにする。(utf8ではない) haskell側はStringで扱いputStrLnなどを使う。(printはコードポイント(?)で表示されてしまう) Hemoji between MySQL and Haskell
GeoJSONでのやり取りもなんか出来てるっぽい。(未コミット) MySQL <--> GeoJSON <--> Haskell (Client driver + geojson library) GeoJSON communication between MySQL and Haskell
geojsonパッケージをビルドした時に ‘Distribution.Package’ does not export ‘PackageName(PackageName)’ というエラーでビルドに失敗しました。 エラーになっているファイルはSetup.hsファイルです。 module Main (main) where import Distribution.Simple…
aesonパッケージの上のレイヤでGeoJSONを扱うためのパッケージです。 geojson: A thin GeoJSON Layer above the aeson library hackageでは2018/02時点で、1.3.1ですが、hackageにアップロードされているモジュールと、githubにあるモジュールに差異があるよ…
テキストで取得 mysql-sql> select st_astext(geo) from geo_tbl; +--------------------------------------------------------------------+ | st_astext(geo) | +--------------------------------------------------------------------+ | POINT(30 10) |…
privateなGistを作っていたとする。 Editを押す。 Make Publicを押すと、privateからpublicに変わる。
いろいろなGeometryのselectと、insertのサンプル Geometry Type Sample on MySQL
まだコミットできるレベルにないけど、検証コードはできた。 A point geometry sample on MySQL
gitからモジュールを取得しておきます。 git clone https://github.com/ewestern/geos.git 開発中のライブラリから使用したいので、そのプロジェクトにて、普通にインストールしようとすると、geosライブラリが不足しているためエラーになりました。 $ cabal…
言われてみれば当たり前なのですが、これに嵌りました。 Num型を複数とる関数があって、Int型やDouble型などいろいろパラメータに与えたかったのですが、コンパイルエラーがとれませんでした。問題点をシンプルな例で示すと以下のようになります。 Num型を複…
新規に作成したファイルがgit statusで表示されず、少し焦りました。.gitignoreの指定対象になっていたようです。無理やりgit add``をしたところ、メッセージに教えてもらいました。.gitignore```の設定を修正しました。 $ git add src/DataBase/MySQLX/Expr…