タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

Haskellに関するkymmt90のブックマーク (5)

  • Applicative スタイル `f <$> m1 <*> m2` を読み解く - Qiita

    という風に書けるよという話です。 問題はこの f <$> m1 <*> m2 では実際に何が起きているのか、なぜ同じ計算結果になるのか、についてです。 <$> と <*> は fmap と apply <$> と <*> という見慣れた、しかし初心者には分からん殺しの演算子ですが、両方とも infixl 4 なので、普通の左から順に計算できる2項演算です。 <$> は fmap まずこの <$> についてですが、 fmap という Functor 型クラスに関する関数です。様々な言語でリストに対する map としてよく使われているアレです。

    Applicative スタイル `f <$> m1 <*> m2` を読み解く - Qiita
  • Applicativeのススメ - あどけない話

    この記事の目的は、Applicative 信者による Applicative スタイルの布教です。 簡潔に結論を述べると、 foo = do a <- m1 b <- m2 return (f a b) のようなコードを書きたくなったら foo = f <$> m1 <*> m2 と書きましょうということ。 合い言葉は、「do と return をなくせ!」です。 FunctorとMonadの間 Functor を特殊化した型クラスがMonadで、Monadの方が強力です。なぜなら、メソッドが増えるからです。 Functorのメソッドはfmapです。fmapの別名を (<$>) といいます。(この記事では、(<$>) と liftM を同一視します。) そして、Monadのメソッドは、ご存知の通り (>>=) と return です。 FunctorとMonadの間にApplicative

    Applicativeのススメ - あどけない話
  • GHC 環境構築 概観 と PowerShell - 趣味はデバッグ……

    Haskell の開発環境を構築する方法は何通りかあり、新しいツールが出ると「今はこれだ」とほめるブログも公開されますがそれが初学者を混乱させることがよくあります。 記事ではビルドツールのインストールにしぼり、開発支援、例えば ghc-mod・haskell-ide-engine・hhp には言及しません。 いくつか典型的な構築方法を確認した後、新たに私が作成したツールを紹介しより初学者を混乱に落とし入れます。 重鎮 Haskell Platform www.haskell.org Haskell 解説書史1の第1波から第3波までのデファクトスタンダードであった重鎮 Haskell Platform です。コンパイラー GHC とパッケージマネージャー Cabal、それにいくつかの準標準ライブラリーをまとめてインストールできるツールでこれをインストールするだけで入門書のコードはすぐ動くと

    GHC 環境構築 概観 と PowerShell - 趣味はデバッグ……
  • Haskell書いてるときになんとなく気をつけていること - LugendrePublic

    信頼性はない 都市伝説かもしれん 大体枕詞に特別な理由がなければがつく 思いついたら徐々に更新する それは違うよってことがあったら @Lugendre まで ghc 8.6.5の話(8.8.1は仕事で使ってなくてな......) コンパイル通るかの確認だけなら最適化オプションO0でコンパイルする stackでいうとstack build --fast 動かすときはO2ビルドしたほうがいいが,インライン展開に5億年消費する なんならこのくらいは静的解析に任せてもいいが,でかいプロジェクトだと一定時間動いてハングアップするのしか世の中にないのでオワリ VSCode のせい説もある ghcideに期待 haskell-language-serverがすべてを解決した CIするときは必ずキャッシュする 毎回一から依存関係やGHCのビルドが走って余裕で1時間超えるようになるので データ構造のフィール

    Haskell書いてるときになんとなく気をつけていること - LugendrePublic
  • erdでテキストベースにER図を描く - Qiita

    背景 PlantUMLはコードで設計図を描くことができて非常に便利なんですが、ER図はサポートしていません。 ということで、コードからER図を生成する方法を探してみました。 今回使うもの BurntSushi/erd Haskellで作られたER図生成ツールです。PlantUMLのようにGraphvizで図を生成してくれるそうです。 インストール こちらとこちらの記事を参考にさせていただきました。 Haskellにはcabalとstackというビルドツールがあるそうです。 stackの方が新しいということなのでそちらを使いました。(正確には、stackはcabalのラッパーツールだそうです) $ brew reinstall graphviz --with-pango $ brew install haskell-stack $ git clone git://github.com/Bur

    erdでテキストベースにER図を描く - Qiita
  • 1