並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 112 件 / 112件

新着順 人気順

monadの検索結果81 - 112 件 / 112件

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

    入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON31(do表記を使ってMonadを扱いやすくする)、31.2(do表記を使って同じコードを異なるコンテキストで再利用する)、IOコンテキスト:コマンドラインツールを構築する、クイックチェック 31-3の解答を求めてみる。 コード data Grade = F | E | D | C | B | A deriving (Eq, Ord, Enum, Show, Read) readGrade :: IO Grade readGrade = do line <- getLine let grade = read line return grade main :: IO () main = do grade <- readGrade prin

    • コードの整理とプロジェクトのビルド Monad型クラス QuickCheckを使ったプロパティテスト さまざまな種類のテスト 手動でのテストとstackからのGHCiの呼び出し - 計算機科学のブログ

      入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON36(QuickCheckを使ったプロパティテスト)、36.2(さまざまな種類のテスト)、手動でのテストとstackからのGHCiの呼び出し、クイックチェック 37-2の解答を求めてみる。 コード src/Main.hs % stack ghci Using main module: 1. Package `palindrome-testing' component palindrome-testing:exe:palindrome-testing-exe with main-is file: /Users/…/palindrome-testing/app/Main.hs palindrome-testing> initial

      • コンテキストでの型の操作 Monad型クラス ApplicativeとFunctorの制限 Monad型クラス Monadを使ってHello Nameプログラムを作成する return関数、ラムダ - 計算機科学のブログ

        入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON30(ApplicativeとFunctorの制限)、30.3(Monad型クラス)、Monadを使ってHello Nameプログラムを作成する、クイックチェック 30-4の解答を求めてみる。 コード f :: (Num a) => a -> a f = (+ 2) g :: Num a => a -> IO a g = \n -> return $ f n main :: IO () main = do a <- g 10 print a % ghci GHCi, version 8.10.7: https://www.haskell.org/ghc/ :? for help Loaded package environment fr

        • コンテキストでの型の操作 Monad型クラス ApplicativeとFunctorの制限 <$>の汎用バージョンのallFmapM関数、ラムダ、return - 計算機科学のブログ

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

          • コードの整理とプロジェクトのビルド Monad型クラス stackを使ってプロジェクトをビルドする プロジェクトの構造を理解する appフォルダ、srcフォルダ、testフォルダ - 計算機科学のブログ

            入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON35(stackを使ってプロジェクトをビルドする)、35.2(プロジェクトの構造を理解する)、appフォルダ、srcフォルダ、testフォルダ、クイックチェック 35-2の解答を求めてみる。 someFuncを出力する。先ビルドの部分を参考にして実際に確認してみる。 入出力結果(Terminal, Zsh) % stack setup stack will use a sandboxed GHC it installed For more information on paths, see 'stack path' and 'stack exec env' To use this GHC and packages outsid

            • コンテキストでの型の操作 Monad型クラス ラムダとreturn、IO - 計算機科学のブログ

              入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 30(Monad型クラス)、30.3(Monad型クラス)、クイックチェック 30-4の解答を求めてみる。 コード lesson/app/Main.hs module Main (main) where import Lib ( ) b :: Num a => a -> a b = (+ 2) c :: Num a => a -> IO a c = \x -> return $ b x main :: IO () main = do n <- c 1 :: IO Int print n % stack exec lesson-exe 3 % stack ghci Using main module: 1. Package `lesso

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

                入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 31(do表記を使ってMonadを扱いやすくする)、31.1(do表記の再考)、クイックチェック 31-1の解答を求めてみる。 コード lesson/app/Main.hs module Main (main) where import Lib () echo1 :: IO () echo1 = getLine >>= putStrLn echo2 :: IO () echo2 = do line <- getLine putStrLn line main :: IO () main = do echo1 echo2 echo1 >> echo2

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

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

                  • コンテキストでの型の操作 Monad型クラス do表記を使ってMonadを扱いやすくする 脱糖、>>=、>>、return、ラムダ式 - 計算機科学のブログ

                    入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON31(do表記を使ってMonadを扱いやすくする)、31.4(練習問題)Q31-1の解答を求めてみる。 空のリストにも対処する。空のリストを返す。 実際に確認。 コード 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

                    • コンテキストでの型の操作 Monad型クラス (<*>)、汎用バージョンallMap、ラムダ関数 - 計算機科学のブログ

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

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

                        入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 30(Monad型クラス)、30.2(bind演算子:»=)、クイックチェック 30-3の解答を求めてみる。 コード lesson/app/Main.hs module Main (main) where import Lib ( echoIntDouble, ) main :: IO () main = echoIntDouble module Lib ( echoIntDouble, ) where readInt :: IO Int readInt = read <$> getLine printDouble :: Int -> IO () printDouble n = print $ n * 2 echoIntDouble

                        • コンテキストでの型の操作 Monad型クラス リストモナドとリスト内包 リストモナドを使ってリストを生成する guard関数 - 計算機科学のブログ

                          入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON32(リストモナドとリスト内包)、32.1(リストモナドを使ってリストを生成する)、guard関数、クイックチェック 32-2の解答を求めてみる。 コード import Control.Monad (guard) myFilter :: (a -> Bool) -> [a] -> [a] myFilter f xs = do x <- xs guard $ f x return x xs :: [Integer] xs = [1 .. 10] main :: IO () main = do mapM_ print [ filter even xs, myFilter even xs ]

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

                            入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON36(QuickCheckを使ったプロパティテスト)、36.3(QuickCheckによるプロパティテスト)、QuickCheck、クイックチェック 37-5の解答を求めてみる。 package.yaml name: palindrome-testing version: 0.1.0.0 github: "githubuser/palindrome-testing" license: BSD3 author: "Author name here" maintainer: "example@example.com" copyright: "2022 Author name here" extra-source-files: -

                            • スペインジュエリー MONAD - Google 検索

                              モナドは文京区の根津にあるセレクトショップです。スペイン、フランス、ドイツ、英国、日本をはじめ世界の優れたデザイナーたちが創り出すジュエリーやアクセサリー ...

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

                                コンテキストでの型の操作 Monad型クラス ApplicativeとFunctorの制限 2つのMap.lookupを組み合わせる 入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON30(ApplicativeとFunctorの制限)、2つのMap.lookupを組み合わせる、クイックチェック 30-1の解答を求めてみる。 pure lookupCreditsの型はApplicative f => f (UserName -> Maybe PlayerCredits)になる。なので、creditsFromIdStringe idはMaybe (Maybe PlayerCredits)型を返すことになる。入れ子になるのが問題点。 実際に確認。 コード import qualified

                                • 入門Haskell Monad型クラス HaskellのエラーとEither型 Either型 数値文字列、変換、和 - 計算機科学のブログ

                                  入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT7(実践Haskell)、LESSON38(HaskellのエラーとEither型)、38.5(練習問題)Q38-1の解答を求めてみる。 コード app/Main.hs module Main where import Lib strInts = ["2", "5", "abcde"] main :: IO () main = do print strInts mapM_ printResult $ addStrInts <$> strInts <*> strInts module Lib ( addStrInts, printResult, ) where import Data.Char (isDigit) isInt :: String -> Bool isInt = al

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

                                    入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON36(QuickCheckを使ったプロパティテスト)、36.5(練習問題)Q36-1の解答を求めてみる。 package.yaml name: palindrome-testing version: 0.1.0.0 github: "githubuser/palindrome-testing" license: BSD3 author: "Author name here" maintainer: "example@example.com" copyright: "2022 Author name here" extra-source-files: - README.md - ChangeLog.md # Metadata u

                                    • コードの整理とプロジェクトのビルド Monad型クラス Haskellコードをモジュールにまとめる 画像のグリッチング - 計算機科学のブログ

                                      入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON34(Haskellコードをモジュールにまとめる)、34.4(練習問題)Q34-2の解答を求めてみる。 コード Main.hs module Main where import Control.Monad (foldM) import qualified Data.ByteString.Char8 as BC import Glitch (randomReplaceByte, randomSortSection) import System.Environment (getArgs) main :: IO () main = do args <- getArgs let fileName = head args imageFi

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

                                        入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON31(do表記を使ってMonadを扱いやすくする)、31.2(do表記を使って同じコードを異なるコンテキストで再利用する)、問題を解決するための準備、クイックチェック 31-2の解答を求めてみる。 コード data Grade = F | D | C | B | A deriving (Eq, Ord, Enum, Show, Read) data Degree = HS | BA | MS | PhD deriving (Eq, Ord, Enum, Show, Read) data Candidate = Candidate { candidateId :: Int, codeReview :: Grade, cultureFit

                                        • コンテキストでの型の操作 Monad型クラス Maybeに対するbind関数の定義、Just、Nothing - 計算機科学のブログ

                                          入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 30(Monad型クラス)、30.5(練習問題)Q30-3の解答を求めてみる。 コード bind :: Maybe a -> (a -> Maybe b) -> Maybe b bind (Just x) f = f x bind Nothing _ = Nothing halve :: Integer -> Maybe Double halve n = Just ((fromIntegral n) / 2.0) main :: IO () main = do print (bind (Just 1) halve) print (bind (Just 2) halve) print (bind Nothing halve)

                                          • 実践Haskell Monad型クラス HaskellのエラーとEither型 head関数、部分関数、エラー パターンマッチ - 計算機科学のブログ

                                            入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT7(実践Haskell)、LESSON38(HaskellのエラーとEither型)、38.1(head関数、部分関数、エラー)のクイックチェック 38-1の解答を求めてみる。 コード myTakePM :: Int -> [a] -> [a] myTakePM _ [] = [] myTakePM 0 _ = [] myTakePM n (x:xs) = x:myTakePM (n - 1) xs nums :: [Integer] nums = [1, 2, 3] main :: IO () main = do mapM_ (\n -> print $ myTakePM n nums) [2, 4]

                                            • コンテキストでの型の操作 do表記を使ってMonadを扱いやすくする do表記、糖衣構文、脱糖、>>=、>>、return、ラムダ式 - 計算機科学のブログ

                                              入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 31(do表記を使ってMonadを扱いやすくする)、31.4(練習問題)Q31-1の解答を求めてみる。 コード lesson/app/Main.hs module Main (main) where import Lib ( comparePizzas, describePizza, ) main :: IO () main = return "What is the size of pizza 1" >>= putStrLn >> getLine >>= ( \size1 -> return "What is the cost of pizza 1" >>= putStrLn >> getLine >>= ( \cost1 -> r

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

                                                入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT6(コードの整理とプロジェクトのビルド)、LESSON34(Haskellコードをモジュールにまとめる)、34.2(モジュールを使ってプログラムを複数のファイルに分割する)、PalindromeモジュールをMainモジュールで使用する、クイックチェック 34-3の解答を求めてみる。 コード Main.hs module Main where import Palindrome (isPalindrome) main :: IO () main = do mapM_ ( \text -> putStrLn $ mconcat [ text, ": ", show $ isPalindrome text ] ) ["abcdedcba", "haskell"]

                                                • 🤩 ひと目でわかる FunctorとMonad ~ UNIT3 THEORYの概要をプレビュー

                                                  この記事は、 2023-12-1以降に順次 、Zennで公開予定 関数型プログラミングの入門本 Functional Programming From Scratch 関数型プログラミングをゼロからわかりやすく実用的に幅広い視点から解説!〜 圏論からFRPの構築まで 🔷UNIT 1🔷 OVERVIEW の冒頭部分です。 全UNIT 1 ~ 5のうち、この本は、UNIT 1です ★1. OVERVIEW 関数型プログラミングの一番「外側」を紹介 関数型プログラミングとは何か? 最新のプログラミングコミュニティの動向、CPUと命令型プログラミング、システム言語における型、構造化プログラミングへの抽象化、関数型言語の紹介、オブジェクト指向と関数型プログラミングの用語と数学の関係、Unreal Engine(ゲームエンジン)の関数型言語Verse、SolidJS、FRPの哲学的側面も含む広く一

                                                    🤩 ひと目でわかる FunctorとMonad ~ UNIT3 THEORYの概要をプレビュー
                                                  • コンテキストでの型の操作 Monad型クラス bind演算子:>>=、IO - 計算機科学のブログ

                                                    入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 30(Monad型クラス)、30.2(bind演算子:»=)のクイックチェック 30-3の解答を求めてみる。 コード readInt :: IO Int readInt = read <$> getLine printDouble :: Int -> IO () printDouble n = print (n*2) readIntAndPrintDouble :: IO () readIntAndPrintDouble = readInt >>= printDouble main :: IO () main = readIntAndPrintDouble % runghc sample03.hs 2 4 kamimura@MacBo

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

                                                      入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON31(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 = (

                                                      • HaskellのI/O バイナリデータの操作 JPEGのグリッチング foldMを使ってI/Oアクションを連結する リスト、Control.Monadモジュール - 計算機科学のブログ

                                                        入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT4(HaskellのI/O)、LESSON25(バイナリデータの操作)、25.2(JPEGのグリッチング)、foldMを使ってI/Oアクションを連結する、クイックチェック 25-4の解答を求めてみる。 コード import qualified BinIface as BC import Control.Monad (foldM) import qualified Data.ByteString.Char8 as BC import System.Environment (getArgs) import System.Random (randomRIO) intToChar :: Int -> Char intToChar n = toEnum $ n `mod` 256 intT

                                                        • ふみ a.k.a.DJ Monad on Twitter: "#OverloadedRecordDot opens up per-type namespaces in #Haskell https://t.co/UdW6qNKLXA"

                                                          #OverloadedRecordDot opens up per-type namespaces in #Haskell https://t.co/UdW6qNKLXA

                                                            ふみ a.k.a.DJ Monad on Twitter: "#OverloadedRecordDot opens up per-type namespaces in #Haskell https://t.co/UdW6qNKLXA"
                                                          • 【Control.Monad.Trans】(2) StateTモナド - 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】(2) StateTモナド - Qiita
                                                            • コンテキストでの型の操作 Monad型クラス リストモナドとリスト内包 リスト内包 - 計算機科学のブログ

                                                              入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON32(リストモナドとリスト内包)、32.2(リスト内包)、クイックチェック 32-3の解答を求めてみる。 コード import Data.Char (toUpper) colors :: [String] colors = [ "brown", "blue", "pink", "orange" ] names :: [String] names = [ mconcat ["Mr. ", toUpper (head color) : tail color] | color <- colors ] main :: IO () main = do print names mapM_ print names

                                                              • 第51回 FunctorとMonadの間にあるApplicative

                                                                モナドとApplicativeの違い ここまで,Applicativeをモナドの代わりに使うにはどうすればいいかを説明してきました。しかし,Applicativeはモナドのすべての役割を代替できるわけではありません。Applicativeにはjoin関数や>>=演算子に相当する機能がないからです。 またApplicativeクラスのインスタンスとMonadクラスのインスタンスの間に成り立つべき法則から,Applicativeスタイルの「f <$> x1 <*> ... <*> xn」という式では,必ずx1からxnまでのすべての計算を行われます。特定の計算を条件分岐で除去することはできません。一方,モナドでは「do {b <- mb; if b then m1 else m2}」のように,条件分岐を使って特定の計算を取り除くことができます。モナドを使って書かれた処理をApplicativeス

                                                                  第51回 FunctorとMonadの間にあるApplicative
                                                                • Scala (Dotty) での Graded Monad によるメタ言語の実装

                                                                  Graded Monad のメタ言語,普通にプログラミング言語で実装できそうやなって思って,ちょっとやってみることにした.で,前ねこはるさんが extensible effects に Dotty の union types 使う話してたの思い出して,それと同じ感じで powerset による preordered monoid に対する graded monad ぐらいなら実装できるんじゃねと思ったので, Dotty のお試しがてら実装してみることにした. Dotty のお試しという要素が強いし, Scala 弱者なので,それほど真面目に実装してない.なんか興味ある方いたら,適当にフォークして勝手に自分で考えたことにしてくれ.なお書いたコードは, https://github.com/mizunashi-mana/graded-monad-in-scala に上げた. Dotty のイン

                                                                    Scala (Dotty) での Graded Monad によるメタ言語の実装