並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 115件

新着順 人気順

monadの検索結果41 - 80 件 / 115件

  • コンテキストでの型の操作 do表記を使ってMonadを扱いやすくする do表記を>>=演算子、>>演算子、return、ラムダ関数で書き換える - 計算機科学のブログ

    入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 31(do表記を使ってMonadを扱いやすくする)、31.4(練習問題)Q31-1の解答を求めてみる。 コード type Pizza = (Double, Double) areaGiveDiameter :: Double -> Double areaGiveDiameter size = pi * (size / 2)^2 costPerInch :: Pizza -> Double costPerInch (size, cost) = cost / areaGiveDiameter size comparePizzas :: Pizza -> Pizza -> Pizza comparePizzas p1 p2 = let co

    • コードの整理とプロジェクトのビルド Monad型クラス 演習:素数ライブラリの作成 素数ライブラリの拡張 - 計算機科学のブログ

      入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON37(演習:素数ライブラリの作成)、37.6(まとめ)、素数ライブラリの拡張を実装してみる。 package.yaml name: primes version: 0.1.0.0 github: "githubuser/primes" license: BSD3 author: "Author name here" maintainer: "example@example.com" copyright: "2022 Author name here" extra-source-files: - README.md - ChangeLog.md # Metadata used when publishing your packa

      • コンテキストでの型の操作 Monad型クラス リストモナドとリスト内包 カレンダーの日付のリストの生成、リスト内包、do表記、Monadのメソッドとラムダ - 計算機科学のブログ

        入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON32(リストモナドとリスト内包)、32.5(練習問題)Q32-2の解答を求めてみる。 コード lasts :: [Int] lasts = [31, 28, 31, 30, 31, 31, 30, 31, 30, 31, 30, 31] calendar :: [Int] calendar = [day | last <- lasts, day <- [1 .. last]] calendarDo :: [Int] calendarDo = do last <- lasts day <- [1 .. last] return day calendarMonadAndLambda :: [Int] calendarMonadAndLamb

        • コンテキストでの型の操作 Monad型クラス do表記を使ってMonadを扱いやすくする List型に対応 - 計算機科学のブログ

          入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON31(do表記を使ってMonadを扱いやすくする)、31.4(練習問題)Q31-2の解答を求めてみる。 空のリストにも対処する。空のリストを返す。 実際に確認。 コード type Pizza = (Double, Double) areaGivenDiameter :: Double -> Double areaGivenDiameter size = pi * (size / 2) ^ 2 costPerInch :: Pizza -> Double costPerInch (size, cost) = cost / areaGivenDiameter size comparePizzas :: Pizza -> Pizza -> P

          • GOMA×谷川俊太郎『Monad』 - ヒロの本棚

            今日は、画家、ミュージシャンとして活躍しているGOMAと、詩人の谷川俊太郎さんがコラボした詩画集『Monad』を紹介します。 GOMAは、天才的なディジュリドゥ奏者として音楽活動をしていて、バンドでフジロックにも出たりしてる人です。3〜4年前に愛媛のフェスに来て演奏してるのを聴いて好きになりました。ちなみにディジュリドゥとはオーストラリアの民族楽器です。 順調に音楽活動をしていたGOMAでしたが、数年前に交通事故で脳を損傷し、記憶が消えていくという後遺症に悩まされるようになります。ただ、失ったものだけではなくそれまで全く描いたことがなかった絵を突然描くようになり、画家としても高い評価を得られるようになりました。 後天性サヴァン症候群と呼ばれる疾患らしいのですが、事故などで脳を損傷することをきっかけにそれまでなかった芸術的才能が突然開花する現象があるみたいです。 それまで全くピアノを弾いたこ

              GOMA×谷川俊太郎『Monad』 - ヒロの本棚
            • Final Tagless vs Free Monad

              Final Tagless vs Free Monad FPure, Kazan, 2019 1 Alexander Granin graninas@gmail.com Twitter: @graninas

                Final Tagless vs Free Monad
              • コードの整理とプロジェクトのビルド Monad型クラス stackを使ってプロジェクトをビルドする コードを記述する パッケージの設定、モジュール、LANGUAGEプラグマ - 計算機科学のブログ

                入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON35(stackを使ってプロジェクトをビルドする)、35.6(練習問題)Q36-1の解答を求めてみる。 README.md name: palindrome-checker version: 0.1.0.0 github: "githubuser/palindrome-checker" license: BSD3 author: "kamimura" maintainer: "kamimura@example.com" copyright: "2022 kamimura" extra-source-files: - README.md - ChangeLog.md # Metadata used when publishing

                • コードの整理とプロジェクトのビルド Monad型クラス QuickCheckを使ったプロパティテスト QuickCheckによるプロパティテスト プロパティのテスト - 計算機科学のブログ

                  入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON36(QuickCheckを使ったプロパティテスト)、36.3(QuickCheckによるプロパティテスト)、プロパティのテスト、クイックチェック 37-4の解答を求めてみる。 コード test/Spec.hs import Lib (isPalindrome) assert :: Bool -> String -> String -> IO () assert test passStatement failStatement = putStrLn $ if test then passStatement else failStatement prop_reverseInvariant text = isPalindrome

                  • 実践Haskell HaskellのエラーとEither型 Monad、<$>演算子、<*>演算子 - 計算機科学のブログ

                    入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT7(実践Haskell)、LESSON 38(HaskellのエラーとEither型)、38.3(Either型)、クイックチェック 38-3の解答を求めてみる。 コード palindrome-checker/app/Main.hs module Main (main) where import Lib (eitherHead) intExample :: [Int] intExample = [1, 2, 3] main :: IO () main = do print $ (+) <$> eitherHead intExample <*> eitherHead (tail intExample) module Lib ( eitherHead, ) where eitherH

                    • 実践Haskell Monad型クラス HaskellのエラーとEither型 Either型 Functor、Applicative、<$>と<*> - 計算機科学のブログ

                      入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT7(実践Haskell)、LESSON38(HaskellのエラーとEither型)、38.3(Either型)、head関数と部分関数、クイックチェック 38-3の解答を求めてみる。 コード eitherHead :: [b] -> Either String b eitherHead [] = Left "空のリストだから先頭の要素はない" eitherHead (x:_) = Right x intExample :: [Int] intExample = [1..3] a :: Either String Int a = (+) <$> eitherHead intExample <*> eitherHead (tail intExample) main = do pri

                      • コードの整理とプロジェクトのビルド Monad型クラス stackを使ってプロジェクトをビルドする リファクタリング - 計算機科学のブログ

                        入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON35(stackを使ってプロジェクトをビルドする)、35.6(練習問題)Q36-2の解答を求めてみる。 コード app/Main.hs module Main where import Lib main :: IO () main = do putStrLn "What is the size of pizza 1" size1 <- getLine putStrLn "What is the cost of pizza 2" cost1 <- getLine putStrLn "What is the size of pizza 1" size2 <- getLine putStrLn "What is the cost o

                        • HaskellのI/O コマンドラインの操作と遅延I/O 遅延評価をしない方法、mapMとmapM_、mapMによるreplicateMの実装、Monad - 計算機科学のブログ

                          % ghc sample01.hs [1 of 1] Compiling Main ( sample01.hs, sample01.o ) Linking sample01 ... kamimura@MacBook lesson22 % ./sample01 1 a haskell "1" "a" "haskell" % import System.Environment myReplicateM :: (Monad m, Num a, Enum a) => a -> m b -> m [b] myReplicateM n func = mapM (\_ -> func) [1..n] main :: IO () main = do args <- getArgs let linesToRead = if length args > 0 then read (head args) else

                          • コンテキストでの型の操作 Monad型クラス do表記を使ってMonadを扱いやすくする 同じコードを異なるコンテキストで再利用する Listコンテキスト:応募者のリストを処理する - 計算機科学のブログ

                            入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON31(do表記を使ってMonadを扱いやすくする)、31.2(do表記を使って同じコードを異なるコンテキストで再利用する)、Listコンテキスト:応募者のリストを処理する、クイックチェック 31-5の解答を求めてみる。 空のリストにも対処する。空のリストを返す。 実際に確認。 コード data Grade = E | D | C | B | A deriving (Eq, Ord, Enum, Show, Read) data Candidate = Candidate { codeReview :: Grade } deriving (Show) viable :: Candidate -> Bool viable candidate

                            • コンテキストでの型の操作 Monad型クラス ApplicativeとFunctorの制限 <*>の汎用バージョンのallApp関数の実装 - 計算機科学のブログ

                              入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON30(ApplicativeとFunctorの制限)、30.5(練習問題)Q30-2の解答を求めてみる。 コード allApp :: Monad m => m (a -> b) -> m a -> m b allApp f x = f >>= ( \f -> x >>= \x -> return $ f x ) f :: Maybe (Integer -> Integer) f = Just (* 2) main :: IO () main = do print $ allApp f $ Just 5 print $ allApp f Nothing

                              • コンテキストでの型の操作 do表記を使ってMonadを扱いやすくする do表記を使って同じコードを異なるコンテキストで再利用する 問題を解決するための準備 - 計算機科学のブログ

                                入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 31(do表記を使ってMonadを扱いやすくする)、31.2(do表記を使って同じコードを異なるコンテキストで再利用する)、問題を解決するための準備、クイックチェック 31-2の解答を求めてみる。 コード lesson/app/Main.hs module Main (main) where import Lib ( Candidate (..), Degree (..), Grade (..), viable, ) candidates :: [Candidate] candidates = Candidate <$> [10, 11] <*> [B .. A] <*> [C .. A] <*> [BA .. PhD] main :

                                • 【Control.Monad.Trans】(1) Identityモナド - Qiita

                                  Haskell/Monad transformers A Gentle Introduction to Monad Transformers モナドトランスフォーマー・ステップ・バイ・ステップ 【Control.Monad.Trans】(1) Identityモナド - Qiita 【Control.Monad.Trans】(2) StateTモナド - Qiita 【Control.Monad.Trans】(3) ExceptTモナド - Qiita 【Control.Monad.Trans】(4) ReaderTモナド - Qiita 【Control.Monad.Trans】(5) IOモナド - Qiita Monad transformersを中心に、モナドの基本的な事項をまとめてみました。(1)~(5)までの連載で、Monad transformersを試行していきます。実際に

                                    【Control.Monad.Trans】(1) Identityモナド - Qiita
                                  • コードの整理とプロジェクトのビルド Monad型クラス stackを使ってプロジェクトをビルドする プロジェクトの構造を理解する 自動的に生成されるファイル - 計算機科学のブログ

                                    コードの整理とプロジェクトのビルド Monad型クラス stackを使ってプロジェクトをビルドする プロジェクトの構造を理解する 自動的に生成されるファイル 入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON35(stackを使ってプロジェクトをビルドする)、35.2(プロジェクトの構造を理解する)、自動的に生成されるファイル、クイックチェック 35-1の解答を求めてみる。 Author name hereを書き換える。 cabal-version: 1.12 -- This file has been generated from package.yaml by hpack version 0.34.4. -- -- see: https://github.com/sol/

                                    • コンテキストでの型の操作 Monad型クラス Applicativeよりも強力であることの証明、<*>演算子の汎用版、メソッド、>>=演算子、ラムダ関数、return - 計算機科学のブログ

                                      入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 30(Monad型クラス)、30.5(練習問題)Q30-2の解答を求めてみる。 コード -- メモ -- g :: a -> b -- y :: a -- f y :: b -- return (g y) :: m b allApp :: Monad m => m (a -> b) -> m a -> m b allApp f x = f >>= (\g -> (x >>= \y -> return (g y))) halve :: Integer -> Double halve n = (fromIntegral n) / 2 halveMaybe :: Maybe (Integer -> Double) halveMaybe =

                                      • TypeScript のエラーハンドリングに Either Monad は有効なのか?

                                        はじめに TypeScript における例外のハンドリングには様々な実装方法があるかと思いますが、言語として想定されているのは主に例外を投げるパターンと undefined や null とのユニオンを使うパターンがあるかと思います。 例外を投げるパターンでは throw new Error("message") というように失敗した理由を一緒に投げられる一方、その関数を使う側からみると返り値の型からその関数が失敗する可能性があることを推測することができません。 一方 undefined や null とのユニオンを使うパターンでは、関数を使う側からみて失敗する可能性が分かり、なおかつ ?. 演算子や ?? 演算子など言語自体からのサポートも手厚いです。一方失敗した理由を投げることはできません。 ここで、Rust でいう Result 型、Haskell や Scala でいう Eithe

                                          TypeScript のエラーハンドリングに Either Monad は有効なのか?
                                        • 実践Haskell Monad型クラス HaskellのエラーとEither型 head関数、部分関数、エラー head関数と部分関数 - 計算機科学のブログ

                                          実践Haskell Monad型クラス HaskellのエラーとEither型 head関数、部分関数、エラー head関数と部分関数 入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT7(実践Haskell)、LESSON38(HaskellのエラーとEither型)、38.1(head関数、部分関数、エラー)、head関数と部分関数、クイックチェック 38-2の解答を求めてみる。 それぞれ空のリスト、最大値がある型の最大値、数値の無限リスト。1番目と2番目はエラー(exception)で、3番目はエラーではなく計算が終わらないという失敗。 実際にGHCiで確認。 入出力結果(Terminal, Zsh) % ghci GHCi, version 8.10.7: https://www.haskell.org/ghc/ :?

                                          • コードの整理とプロジェクトのビルド Monad型クラス Haskellコードをモジュールにまとめる プログラムを複数のファイルに分割する 関数のエクスポート - 計算機科学のブログ

                                            入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON34(Haskellコードをモジュールにまとめる)、34.2(モジュールを使ってプログラムを複数のファイルに分割する)、改善されたisPalindromeコードを専用のモジュールに配置する、クイックチェック 34-2の解答を求めてみる。 コード Main.hs module Main where import qualified Palindrome main :: IO () main = do print $ Palindrome.preprocess "Hello, world!" print $ Palindrome.preprocess "AbCdE" module Palindrome ( isPalindrome

                                            • コンテキストでの型の操作 do表記を使ってMonadを扱いやすくする Maybe、一般化 - 計算機科学のブログ

                                              入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 31(do表記を使ってMonadを扱いやすくする)、31.4(練習問題)Q31-3の解答を求めてみる。 コード lesson/app/Main.hs module Main (main) where import Lib ( comparePizzas, describePizza, ) sizeData :: [Double] sizeData = [2, 3] costData :: [Double] costData = [9, 10] maybeMain :: Monad m => m Double -> m Double -> m String maybeMain size cost = do size1 <- size c

                                              • コードの整理とプロジェクトのビルド Monad型クラス Haskellコードをモジュールにまとめる Preludeの関数と同じ名前の関数を記述したらどうなるか - 計算機科学のブログ

                                                入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON34(Haskellコードをモジュールにまとめる)、34.1(Preludeの関数と同じ名前の関数を記述したらどうなるか)、クイックチェック 34-1の解答を求めてみる。 モジュールを明示的に定義すればいい。 コード module Main where length :: Int length = 8 main :: IO () main = do print Main.length print $ Prelude.length []

                                                • コンテキストでの型の操作 do表記を使ってMonadを扱いやすくする do表記を使って同じコードを異なるコンテキストで再利用する Listコンテキスト:応募者のリストを処理する - 計算機科学のブログ

                                                  入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 31(do表記を使ってMonadを扱いやすくする)、31.2(do表記を使って同じコードを異なるコンテキストで再利用する)、Listコンテキスト:応募者のリストを処理する、クイックチェック 31-5の解答を求めてみる。 空のリストにも対処する。 実際に確認。 コード lesson/app/Main.hs module Main (main) where import Lib ( assertCandidateList, ) main :: IO () main = do print $ assertCandidateList [] module Lib ( assertCandidateList, ) where data Grade

                                                  • コードの整理とプロジェクトのビルド Monad型クラス QuickCheckを使ったプロパティテスト さまざまな種類のテスト ユニットテストの作成とstack testの使用 - 計算機科学のブログ

                                                    入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON36(QuickCheckを使ったプロパティテスト)、36.2(さまざまな種類のテスト)、ユニットテストの作成とstack testの使用、クイックチェック 37-3の解答を求めてみる。 コード test/Spec.hs import Lib (isPalindrome) assert :: Bool -> String -> String -> IO () assert test passStatement failStatement = putStrLn $ if test then passStatement else failStatement main :: IO () main = do putStrLn "Run

                                                    • 入門Haskell Monad型クラス HaskellのエラーとEither型 Either型 安全なsucc、tail、last関数、Maybe型、リスト、maxBound - 計算機科学のブログ

                                                      入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT7(実践Haskell)、LESSON38(HaskellのエラーとEither型)、38.5(練習問題)Q38-2の解答を求めてみる。 コード safeSucc :: (Enum a, Bounded a, Eq a) => a -> Maybe a safeSucc x | x == maxBound = Nothing | otherwise = Just $ succ x safeTail :: [a] -> [a] safeTail [] = [] safeTail (x:xs) = xs safeLast :: [a] -> Either String a safeLast [] = Left "空のリスト" safeLast xs = let maxLength =

                                                      • コンテキストでの型の操作 Monad型クラス ApplicativeとFunctorの制限 bind演算子:>>= - 計算機科学のブログ

                                                        入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON30(ApplicativeとFunctorの制限)、30.2(bind演算子:»=)、クイックチェック 30-3の解答を求めてみる。 コード readInt :: IO Int readInt = read <$> getLine printDouble :: Int -> IO () printDouble n = print (n * 2) readAndPrintDouble :: IO () readAndPrintDouble = readInt >>= printDouble main :: IO () main = do readAndPrintDouble

                                                        • コンテキストでの型の操作 Monad型クラス 汎用バージョンallFmapM - 計算機科学のブログ

                                                          入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 30(Monad型クラス)、30.5(練習問題)Q30-1の解答を求めてみる。 コード lesson/app/Main.hs module Main (main) where import Lib ( allFmapM, ) maybeNums :: [Maybe Int] maybeNums = [Just 10, Nothing] nums :: [Int] nums = [1 .. 5] main :: IO () main = do mapM_ (print . allFmapM (* 2)) maybeNums mapM_ (print . allFmapM show) maybeNums print $ allFmapM

                                                          • コンテキストでの型の操作 Monad型クラス Maybe版(>>=)の実装、bind関数 - 計算機科学のブログ

                                                            入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 30(Monad型クラス)、30.5(練習問題)Q30-3の解答を求めてみる。 コード lesson/app/Main.hs module Main (main) where import Lib ( bind, ) nums :: [Maybe Int] nums = Nothing : map Just [-4 .. 5] f :: (Eq a, Num a, Show a) => a -> Maybe String f 0 = Nothing f n = Just $ show n main :: IO () main = do mapM_ (\x -> print $ bind x f) nums

                                                            • 実践Haskell 効率的でステートフルな配列 Data.Array.STモジュール、writeArray関数、Control.Monadモジュール、when関数 - 計算機科学のブログ

                                                              入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT7(実践Haskell)、LESSON42(Haskellでの効率的でステートフルな配列)、42.6(練習問題)Q42-2の解答を求めてみる。 package.yaml name: st-lesson version: 0.1.0.0 github: "githubuser/st-lesson" license: BSD3 author: "Author name here" maintainer: "example@example.com" copyright: "2022 Author name here" extra-source-files: - README.md - ChangeLog.md # Metadata used when publishing your p

                                                              • コードの整理とプロジェクトのビルド Monad型クラス stackを使ってプロジェクトをビルドする コードを記述する - 計算機科学のブログ

                                                                入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON35(stackを使ってプロジェクトをビルドする)、35.3(コードを記述する)、クイックチェック 35-3の解答を求めてみる。 palindrome-checker.cabalファイルのlibraryのexposed-modulesのLibをPalindromeに書き換えればいい。 palindrome-checker.cabal cabal-version: 1.12 -- This file has been generated from package.yaml by hpack version 0.34.4. -- -- see: https://github.com/sol/hpack name: palindro

                                                                • コンテキストでの型の操作 do表記を使ってMonadを扱いやすくする Monadの全てのインスタンスに対応させる、型シグネチャ - 計算機科学のブログ

                                                                  入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 31(do表記を使ってMonadを扱いやすくする)、31.4(練習問題)Q31-3の解答を求めてみる。 コード type Pizza = (Double, Double) areaGivenDiameter :: Double -> Double areaGivenDiameter size = pi * (size/2)^2 costPerInch :: Pizza -> Double costPerInch (size, cost) = cost / areaGivenDiameter size comparePizzas :: Pizza -> Pizza -> Pizza comparePizzas p1 p2 = let c

                                                                  • package cats applicative functor monad cats - Google 検索

                                                                    2019/10/27 · Cats は関数型な Scala プログラミングのためのライブラリなので、この記事でも関数を扱う。関数型パラダイムで関数というと数学の関数とだいたい同じ ...

                                                                    • コンテキストでの型の操作 Monad型クラス リストモナドとリスト内包 カレンダーの日付のリストの生成 - 計算機科学のブログ

                                                                      入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON32(リストモナドとリスト内包)、32.5(練習問題)Q32-1の解答を求めてみる。 コード lasts :: [Int] lasts = [31, 28, 31, 30, 31, 31, 30, 31, 30, 31, 30, 31] calendar :: [Int] calendar = [day | last <- lasts, day <- [1 .. last]] p :: (Eq a, Num a, Show a) => [a] -> [Char] p [] = "" p (x : xs) = if x == 1 then mconcat ["\n", show x, " ", p xs] else mconcat [sh

                                                                      • コンテキストでの型の操作 Monad型クラス do表記を使ってMonadを扱いやすくする do表記の再考 - 計算機科学のブログ

                                                                        入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON31(do表記を使ってMonadを扱いやすくする)、31.1(do表記の再考)、クイックチェック 31-1の解答を求めてみる。 コード

                                                                        • コンテキストでの型の操作 do表記を使ってMonadを扱いやすくする do表記の再考 >>=演算子の糖衣構文 - 計算機科学のブログ

                                                                          入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 31(do表記を使ってMonadを扱いやすくする)、31.1(do表記の再考)のクイックチェック 31-1の解答を求めてみる。 コード % ghci GHCi, version 8.10.6: https://www.haskell.org/ghc/ :? for help macro 'doc' overwrites builtin command. Use ':def!' to overwrite. (0.00 secs, 0 bytes) (0.00 secs, 0 bytes) Loaded GHCi configuration from /Users/…/.ghc/ghci.conf Prelude λ> :load sam

                                                                          • コードの整理とプロジェクトのビルド Monad型クラス QuickCheckを使ったプロパティテスト 新しいプロジェクトを開始する - 計算機科学のブログ

                                                                            入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON36(QuickCheckを使ったプロパティテスト)、36.1(新しいプロジェクトを開始する)、クイックチェック 37-1の解答を求めてみる。 コード src/Lib.hs module Lib where -- module Lib -- ( someFunc, -- ) -- where someFunc :: IO () someFunc = putStrLn "someFunc" % stack setup stack will use a sandboxed GHC it installed For more information on paths, see 'stack path' and 'stack exec

                                                                            • コンテキストでの型の操作 Monad型クラス do表記を使ってMonadを扱いやすくする 同じコードを異なるコンテキストで再利用する Maybeコンテキスト:応募者のマップを操作する - 計算機科学のブログ

                                                                              入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON31(do表記を使ってMonadを扱いやすくする)、31.2(do表記を使って同じコードを異なるコンテキストで再利用する)、Maybeコンテキスト:応募者のマップを操作する、クイックチェック 31-4の解答を求めてみる。 コード f :: Maybe String -> String f (Just _) = "passed" f Nothing = "error id not found" main = do mapM_ (print . f) [Just "a", Nothing, Just "", Just "abcde"]

                                                                              • コンテキストでの型の操作 Monad型クラス ApplicativeとFunctorの制限 それほど単純ではないecho I/Oアクションを記述する - 計算機科学のブログ

                                                                                コンテキストでの型の操作 Monad型クラス ApplicativeとFunctorの制限 それほど単純ではないecho I/Oアクションを記述する 入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 30(Monad型クラス)、30.1(ApplicativeとFunctorの制限)、それほど単純ではないecho I/Oアクションを記述する、クイックチェック 30-1の解答を求めてみる。 IO String型ではMaybe String型のように関数の引数のパターンマッチで値を取得することができないから。 本lessonで使わないことにしてるdo表記を使えば可能。 do表記を使用した記述をしてみる。 コード lesson/app/Main.hs module Main (main)

                                                                                • コンテキストでの型の操作 Monad型クラス ApplicativeとFunctorの制限 2つのMap.lookupを組み合わせる pure関数 - 計算機科学のブログ

                                                                                  コンテキストでの型の操作 Monad型クラス ApplicativeとFunctorの制限 2つのMap.lookupを組み合わせる pure関数 入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 30(Monad型クラス)、30.1(ApplicativeとFunctorの制限)、2つのMap.lookupを組み合わせる、クイックチェック 30-1の解答を求めてみる。 得られる結果がMaybe PlayerCredits型ではなく、Maybe (Maybe PlayerCredits)型になってしまう。 実際に確認。 lesson/package.yaml name: lesson version: 0.1.0.0 github: "githubuser/lesson" licen