haskellに関するlotz84のブックマーク (6)

  • All About Monads モナドのすべて

    モナドのすべて Haskell におけるモナドプログラミングの理論と実践に関する包括的ガイド Version 1.1.0 このチュートリアルは、モナドの概念とその関数プログラミングにおける応用に ついて、初中級の Haskell プログラマにわかりやすく、利用価値があるような 解説をすることを旨としています。読者は Haskell になれていることを前提と しますが、モナドに関する経験は要求していません。このチュートリアルは、多 くの題材をカバーしています。後半のセクションでは、前半の題材をよく理解し ていることを前提とします。順をおって、モナドプログラミングを例示するため のサンプルコードがたくさん用意されています。一読で、すべての題材を吸収し ようというのはお勧めできません。 このチュートリアルは 3 つの部分で構成されています。最初の部分は、 関数プログラミングにおけるモナドの基

  • Haskell入門 - Qiita

    対象 「Scala モナド」などでググったけどHaskellでの説明が出てきて、Scalaっていうたやん!とキレたことのある人。 目標 Haskellで書かれた式が読める モナド則 return x >>= f == f x m >>= return == m (m >>= f) >>= g == m >>= (\x -> f x >>= g) ※注 僕はまだこれしか読んでません。 Haskellとは? 強い静的型付け 関数型言語 遅延評価 ロゴがかっこいい 基 > 1 + 2 3 > True && False False > 1 == 1 True > "Hello" /= "hello" False > 1 : 2 : 3 : [] [1,2,3]

    Haskell入門 - Qiita
  • Haskellプロダクトのススメ

    こんにちは.電気通信大学 MMA です. MMA は,1975年に創設された,大学公認の文化系サークルです. 設立当初はマイコンの設計や製作を主に行っていたそうですが, 現在はソフトウェアやネットワークまわりの管理・研究・開発などを主に, 計算機に関わることだったらなんでもやってみようというスタンスで活動しています. 部の紹介や入部案内, 連絡先など詳細については,MMAについてをご覧ください. サークル棟ネットワーク関連の情報についてはCirclenetをご覧ください. 各個人のページはこちらをご覧ください. information Dentoo.LT #21 を 11/11(日) 電気通信大学 東地区 A棟 101教室 にて開催いたします。詳しくはDentoo.LT #21をご覧ください。 (2018/10/27) 4/13(金)にA棟202教室で2018年度最初の部会をやります. 入

    lotz84
    lotz84 2016/04/21
    良い
  • SpockとLINE BOTでオウム返しを作ってみた - Qiita

    {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedStrings #-} module Main where import Control.Lens ((^?)) import Control.Monad.IO.Class (liftIO) import Data.Aeson import Data.Aeson.Lens (key, _Array) import qualified Data.ByteString.Char8 as BS import Data.Foldable (for_) import System.Environment (lookupEnv) import Network.HTTP.Conduit import Web.Spock.Safe main :: IO () main = do -- 環境変数の

    SpockとLINE BOTでオウム返しを作ってみた - Qiita
    lotz84
    lotz84 2016/04/09
    書きました!Maybeの処理はサボりました(^_^;)
  • Education Ecosystem

  • nested Alternative (or MonadPlus) - DebugIto's diary

    最近仕事でattoparsecを使ってパーサを書いたりしている。パーサを書く際はAlternativeクラスの(<|>)が便利だ。 (<|>) :: f a -> f a -> f a (a <|> b)とはざっくり言って、「aを実行して失敗したらbを実行する」ということ。Alternativeをアクションだととらえれば、これは「アクションaが例外を投げたらそれを全てキャッチして無視し、bを実行する」という(やや乱暴な)例外処理として考えることもできる。 さて、Alternativeのインスタンスであるモナドはいろいろある。例えばMaybeがそうである。また一方で、Alternativeのインスタンスを作るモナドトランスフォーマーもある。例えばExceptTである。 そこで先日ふと気になったのだが、例えばモナド(ExceptT e Maybe)は(<|>)についてどのような挙動を取るのだろ

    nested Alternative (or MonadPlus) - DebugIto's diary
  • 1