自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 C++17尝鲜:类模板中的模板参数自动推导

模板参数自动推导在C++17之前,类模板构造器的模板参数是不能像函数模板的模板参数那样被自动推导的,比如我们无法写std::pair a{1, "a"s}; // C++17而只能写std::pair<int, string> a{1, "a"s}; // C++14为了弥补这一缺陷,标准库为我们提供了 std::make_pair 函数,通过函数模板的模板参数自动推导的功能, 免去我们在构造 p

2017-10-29 12:14:58 3016

原创 Haskell语言学习笔记(34)System.Environment

System.EnvironmentgetArgs :: IO [String] getProgName :: IO String getExecutablePath :: IO FilePathgetArgs 这个 IO Action 读取所有的命令行参数,返回一个字符串数组。 getProgName 这个 IO Action 返回程序的名字。 getExecutablePath 这个 I

2017-10-28 22:09:33 356

原创 Haskell语言学习笔记(33)Exception, Except, ExceptT

Exceptionclass (Typeable e, Show e) => Exception e where toException :: e -> SomeException fromException :: SomeException -> Maybe e toException = SomeException fromException (SomeExce

2017-10-28 22:09:02 686

原创 Haskell语言学习笔记(32)Data.Maybe, Data.Either

Data.MaybePrelude Data.Maybe> maybe "" show (Just 5)"5"Prelude Data.Maybe> maybe "" show Nothing""Prelude Data.Maybe> isJust (Just 3)TruePrelude Data.Maybe> isJust NothingFalsePrelude Data.Mayb

2017-10-28 22:08:27 868

原创 Haskell语言学习笔记(31)ListT

Control.Monad.Trans.List标准库中的 ListT 的实现由于有 bug,已经被废弃。list-t 模块这里使用 list-t 模块中的 ListT。 list-t 模块需要安装 ListT done right$ cabal install list-tlist-t-1.0.0.1Prelude> :m +ListTPrelude ListT> ListT Monad

2017-10-28 22:07:46 369

原创 Haskell语言学习笔记(30)MonadCont, Cont, ContT

MonadCont 类型类class Monad m => MonadCont m where callCC :: ((a -> m b) -> m a) -> m ainstance MonadCont (ContT r m) where callCC = ContT.callCCclass Monad m => MonadCont m where MonadState 是个

2017-10-22 13:41:54 779

原创 Haskell语言学习笔记(29)CPS

CPS (Continuation Passing Style)add :: Int -> Int -> Intadd x y = x + ysquare :: Int -> Intsquare x = x * xpythagoras :: Int -> Int -> Intpythagoras x y = add (square x) (square y)add_cps :: Int ->

2017-10-18 08:28:30 513

原创 Haskell语言学习笔记(28)Data.Map

Data.MapOperatorsPrelude Data.Map> fromList [(5,'a'), (3,'b')] ! 5'a'Prelude Data.Map> fromList [(5, 'a'), (3, 'b')] !? 1 NothingPrelude Data.Map> fromList [(5, 'a'), (3, 'b')] !? 5Just 'a'QueryPr

2017-10-18 08:25:44 10503

原创 C++17尝鲜:在 if 和 switch 语句中进行初始化

初始化语句在C++17中,类似于 for 语句,在 if 和 switch 语句的判断条件之前也能加上初始化语句,语法形式如下:if (初始化语句; 条件) 语句 else 语句switch (初始化语句; 条件) 语句这里的初始化语句是可选的,它可以是初始化表达式,也可以是变量声明。带初始化语句的 if 和 switch 语句在语义上相当于:{ 初始化语句; if (条件) 语句

2017-10-18 08:23:22 3403

原创 Functional Java 学习笔记

Functional JavaFunctional Java是一个在Java语言中实现函数型编程范式的类库。 从接口上看,该类库似乎与Haskell语言关系密切,接口的方法名很多来自该语言。<!-- https://mvnrepository.com/artifact/org.functionaljava/functionaljava --><dependency> <groupId>o

2017-10-15 14:08:11 1896

原创 Haskell语言学习笔记(27)Endo, Dual, Foldable

Endo Monoidnewtype Endo a = Endo { appEndo :: a -> a }instance Monoid (Endo a) where mempty = Endo id Endo f `mappend` Endo g = Endo (f . g)Endo 是个 newtype,也就是对现有类型的封装。 Endo a 封装的是一个自

2017-10-15 13:13:18 648

原创 Haskell语言学习笔记(26)Identity, IdentityT

Identity Monadnewtype Identity a = Identity { runIdentity :: a }instance Functor Identity where fmap = coerceinstance Applicative Identity where pure = Identity (<*>) = coerceins

2017-10-15 13:12:42 502

原创 Haskell语言学习笔记(25)MonadState, State, StateT

MonadState 类型类class Monad m => MonadState s m | m -> s where get :: m s get = state (\s -> (s, s)) put :: s -> m () put s = state (\_ -> ((), s)) state :: (s -> (a, s)) -> m a sta

2017-10-15 13:12:03 766

原创 Haskell语言学习笔记(24)MonadWriter, Writer, WriterT

MonadWriter 类型类class (Monoid w, Monad m) => MonadWriter w m | m -> w where writer :: (a,w) -> m a writer ~(a, w) = do tell w return a tell :: w -> m () tell w = writer ((),

2017-10-15 13:11:22 751

原创 Haskell语言学习笔记(23)MonadReader, Reader, ReaderT

MonadReader 类型类class Monad m => MonadReader r m | m -> r where ask :: m r ask = reader id local :: (r -> r) -> m a -> m a reader :: (r -> a) -> m a reader f = do r <- ask

2017-10-15 13:10:28 692

原创 Haskell语言学习笔记(22)MaybeT

MaybeT

2017-10-06 23:45:27 868

原创 Haskell语言学习笔记(21)Array

Array

2017-10-06 23:44:22 1381

原创 Haskell语言学习笔记(20)IORef, STRef

IORef, STRef

2017-10-06 23:43:11 969

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除