Google グループでは、オンライン フォーラムやメール ベースのグループを作成したり、こうしたフォーラムやグループに参加したりすることで、大勢のユーザーと情報の共有やディスカッションを行うことができます。
Haskellで乱数というとすぐにStdGenが出てきて面倒くさいイメージがありますが 再現性を気にせず手軽にランダムな値が欲しいだけなら難しいことを考える必要はありません 以下はモンテカルロ法で円周率を求めるプログラムです。 乱数生成に使っているのはSystem.RandomのrandomRIOというRandomクラスのメソッドです import System.Random trial :: Int -> IO Int trial inner = do x <- randomRIO (0, 1) :: IO Double y <- randomRIO (0, 1) :: IO Double if x ^ 2 + y ^ 2 <= 1 then return (inner + 1) else return inner experience :: [IO Int] experience =
Emacsの正規表現は呪いです。 なんだあのバックスラッシュの連発は… Emacs大好きでもあの 正規表現 だけは許せないという人は 僕も含め、それなりの数がいると思われます。 そんなあなたにとっておきのパッケージを紹介します。 pcre2el.el は、以下の機能をもって呪わしき正規表現から救ってくれます。 Emacsの正規表現から PCRE へ変換 Emacsの正規表現から rx (S式による表現)へ変換 正規表現を分解して文字列リスト化 カーソル位置・regionの正規表現をrx形式に変換して解説! M-x re-builder でPCREに対応!! これはそもそもelispで書かれたPCREエミュレータであり、 Emacsの正規表現に変換できる範囲でPCREが使えます。 そもそもEmacsの正規表現とPCREは一対一対応ではないので、 完全にPCREの機能が使えるわけではないですが
Haskellの実験メモです。 MaybeとStateをモナド変換子で合成してみました。積む順番を変えた2パターンを試しました。 モナド変換子の知識を前提としています。 Haskell モナド変換子 超入門 2015.1.4 この記事には続編のようなものがあります。 Parsecをモナド変換子で模倣 2015.4.28 発端 『プログラミングHaskell』の『第8章 関数型パーサー』で説明されているParserは、MaybeとStateの両方の特徴を併せ持っています。モナド変換子で合成して同じことができないかと思いました。 import Control.Monad import Control.Monad.State import Control.Monad.Maybe stateOnMaybe :: StateT Int Maybe () stateOnMaybe = do a <-
『プログラミングHaskell』の関数型パーサー(ソースコードはここの"Functional parsing library"、"Expression parser"からダウンロードできます)をStateTを使って書き直すと、次のようになります。 import Control.Monad.State type Parser a = StateT String Maybe a runParser = runStateT parse :: Parser a -> String -> Maybe (a, String) parse p inp = runParser p inp item :: Parser Char item = do x:xs <- get put xs return x Parser aの定義から分かるようにモナドのインスタンスにするために、>>=を定義する必要はなくなりま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く