自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AWS 实战

AWS (Amazon Web Service)要使用亚马逊的免费云服务 AWS,必须先注册账号,然后绑定信用卡。创建 AMI(Amazon Machine Image)选择 EC2 服务EC2 Management Console(EC2 Dashboard) 打开 EC2 虚拟服务器的管理控制台(默认打开仪表盘)Launch Instance 点击创建实例按钮Ama...

2018-07-24 22:11:06 2213

原创 Haskell语言学习笔记(1)

函数, 列表解析, (.), ($), data, type, newtype, 类型类(typeclass)

2015-05-11 11:47:19 2757

原创 C++11尝鲜:右值引用和转发型引用

解决移动语义及完美转发问题

2013-10-05 19:52:37 13077 5

原创 C++11尝鲜:std::move和std::forward源码分析

std::move和std::forward是C++0x中新增的标准库函数,分别用于实现移动语意和完美转发。下面让我们分析一下这两个函数在gcc4.6中的具体实现。预备知识引用折叠规则:X& + & => X&X&& + & => X&X& + && => X&X&& + && => X&&函数模板参数推导规则(右值引用参数部分):当函数模板的模板参数为T而

2011-10-07 14:48:33 63677 24

原创 ReactiveX 学习笔记(35)使用 RxDart + RxCommand 进行 GUI 编程

课题程序界面由3个文本编辑框和1个文本标签组成。要求文本标签实时显示3个文本编辑框所输入的数字之和。文本编辑框输入的不是合法数字时,将其值视为0。3个文本编辑框的初值分别为1,2,3。创建工程Flutter 安装完毕之后执行以下命令创建工程flutter create rx_example打开 Android Studio,File / Open…选择 rx_example 文件夹以打开 Flutter 工程。...

2021-04-03 05:31:56 729 1

原创 趣味编程:FizzBuzz(Swift版)

func toFizzBuzzExpr(n: Int) -> String { return n % 3 == 0 && n % 5 == 0 ? "FizzBuzz" : n % 3 == 0 ? "Fizz" : n % 5 == 0 ? "Buzz" : String(n);}func toFizzBuzzIf...

2018-07-24 22:23:49 574

原创 C++17尝鲜:变长 using 声明

using 声明先来看 using 声明在类中的应用:代码1#include <iostream>using namespace std;struct A { void f(int) {cout << "A::f(int)" << endl;}};struct S : A {};int main(){ S s...

2018-07-24 22:10:12 1302 1

原创 C++17尝鲜:编译期 if 语句

Constexpr If(编译期 if 语句)以 if constexpr 打头的 if 语句被称为 Constexpr If。 Constexpr If 是C++17所引入的新的语法特性。它为C++语言提供了在编译期处理条件分歧的功能。 运行期 if 语句 预处理 if 语句 编译期 if 语句 if (condition) { statement;} el...

2018-07-24 22:09:28 2099 1

原创 C++17尝鲜:variant

variantvariant 是 C++17 所提供的变体类型。variant<X, Y, Z> 是可存放 X, Y, Z 这三种类型数据的变体类型。与C语言中传统的 union 类型相同的是,variant 也是联合(union)类型。即 variant 可以存放多种类型的数据,但任何时刻最多只能存放其中一种类型的数据。与C语言中传统的 union 类型所不同的是,var...

2018-07-24 22:08:39 11874 2

原创 C++17尝鲜:string_view

string_viewstring_view 是C++17所提供的用于处理只读字符串的轻量对象。这里后缀 view 的意思是只读的视图。通过调用 string_view 构造器可将字符串转换为 string_view 对象。 string 可隐式转换为 string_view。string_view 是只读的轻量对象,它对所指向的字符串没有所有权。string_view通常用于函数...

2018-07-24 22:07:51 4950 3

原创 Haskell语言学习笔记(80)req

reqreq 是一个好用,类型安全,可扩展,上层的HTTP客户端的库。$ cabal install reqInstalled req-1.1.0Prelude> :m +Network.HTTP.ReqPrelude Network.HTTP.Req> 官方示例{-# LANGUAGE OverloadedStrings, DeriveGeneric...

2018-07-16 20:03:41 344 1

原创 Haskell语言学习笔记(79)lambda演算

lambda演算根据维基百科,lambda演算(英语:lambda calculus,λ-calculus)是一套从数学逻辑中发展,以变量绑定和替换的规则,来研究函数如何抽象化定义、函数如何被应用以及递归的形式系统。lambda项lambda演算由 lambda 项的语言构成。基本的 lambda 项只包含以下三种: 语法 名称 描述 Haskell语言中的...

2018-07-16 20:03:16 1659

原创 Haskell语言学习笔记(78)fix

fix 函数fix 是一个在 Data.Function 模块中定义的函数,它是对于递归的封装,可以用于定义不动点函数。fix :: (a -> a) -> afix f = let x = f x in xfix 函数的定义使用了递归绑定,比较难以理解:fix f= let x = f x in x= let x = f x in f x= let x...

2018-07-16 20:02:50 736

原创 Haskell语言学习笔记(77)Lens(6)

ixPrelude Control.Lens> [1,2,3] ^? ix 1Just 2Prelude Control.Lens> [1,2,3] ^?! ix 12Prelude Control.Lens> [1,2,3] & (ix 1) .~ 20[1,20,3]atrelude Control.Lens> import q...

2018-07-16 20:02:18 282

原创 Haskell语言学习笔记(76)Data.Tree

Data.Treedata Tree a = Node { rootLabel :: a, subForest :: Forest a } deriving (Eq, Read, Show)type Forest a = [Tree a]Data.Tree 是一种非空(存在根节点),可以有无限分支,每个节点均可有多路分支的Tree类型。...

2018-07-16 20:01:48 826

原创 Haskell语言学习笔记(75)Conduit

安装 conduit$ cabal install conduitInstalled conduit-1.3.0.3Prelude> import ConduitPrelude Conduit> ConduitConduit 是一个处理流的库。Prelude Conduit> :{Prelude Conduit| print $ runCo...

2018-07-16 20:01:22 307

原创 Haskell语言学习笔记(74)GADT

GADTsGADTs(Generalised Algebraic Data Types,广义代数数据类型)是对代数数据类型的一种扩展。 它允许在定义数据类型时明确指定类型参数的类型并使用模式匹配。--ADTdata Maybe a = Nothing | Just a--GADTdata Maybe a where Nothing :: May...

2018-07-16 20:00:51 678

原创 Haskell语言学习笔记(73)Existentials

Existentials(存在类型)Existentially quantified types(Existentially types,Existentials)是一种将一组类型归为一个类型的方式。 通常在使用 type, newtype, data 定义新类型的时候,出现在右边的类型参数必须出现在左边。 存在类型可以突破此限制。实例{-# LANGUAGE Existe...

2018-07-16 20:00:24 275

原创 Haskell语言学习笔记(72)Free Monad

安装 free 包$ cabal install freeInstalled free-5.0.2Free Monaddata Free f a = Pure a | Free (f (Free f a))instance Functor f => Functor (Free f) where fmap f = go where go (Pure a...

2018-07-16 19:59:56 370

原创 Haskell语言学习笔记(71)Semigroup

Semigroupclass Semigroup a where (<>) :: a -> a -> a sconcat :: NonEmpty a -> a stimes :: Integral b => b -> a -> aclass Semigroup a => Monoid ...

2018-07-16 19:59:21 543

原创 Haskell语言学习笔记(70)NonEmpty

NonEmpty(非空列表)infixr 5 :|data NonEmpty a = a :| [a] deriving (Eq, Ord)instance Functor NonEmpty where fmap f ~(a :| as) = f a :| fmap f as b <$ ~(_ :| as) = b :| (b <$ as)ins...

2018-07-15 10:21:53 317

原创 Haskell语言学习笔记(69)Yesod

YesodYesod 是一个使用 Haskell 语言的 Web 框架。安装 Yesod首先更新 Haskell Platform 到最新版 (Yesod 依赖的库非常多,版本不一致的话很容易安装失败)$ cabal install yesodInstalled yesod-1.4.5Hello World-- helloworld.hs{-# LA...

2018-07-15 10:21:21 422

原创 Haskell语言学习笔记(68)HDBC

安装 HDBC-Sqlite3$ cabal install HDBC-Sqlite3Installed HDBC-sqlite3-2.3.3.1Prelude> :m Database.HDBC Database.HDBC.Sqlite3Prelude Database.HDBC Database.HDBC.Sqlite3>DB 操作Prelude Da...

2018-07-15 10:20:45 442

原创 Haskell语言学习笔记(67)Gtk2Hs

Gtk2Hs$ brew cask install xquartz$ brew install glib cairo gtk gettext fontconfig freetype$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$ cabal install alex happy$ cabal install gtk2hs-bui...

2018-07-15 10:06:10 366

原创 Haskell语言学习笔记(66)Aeson

Data.Aeson安装 aeson$ cabal install aesonInstalled aeson-1.2.3.0Prelude> :m +Data.AesonPrelude Data.Aeson> Data.Aeson 是一个处理 JSON 数据的库。处理 Person{-# LANGUAGE DeriveGeneric, Overlo...

2018-07-15 10:05:30 281

原创 Haskell语言学习笔记(65)Lens(5)

手动计算 set mapped 5 [1,2,3]set l b = runIdentity . l (\_ -> Identity b)mapped = sets fmapsets f g = taintedDot (f (untaintedDot g))instance Settable Identity where untainted = runIdentity ...

2018-07-15 10:05:01 203

原创 Haskell语言学习笔记(64)Lens(4)

Prisms{-# LANGUAGE TemplateHaskell, RankNTypes #-}import Control.Lensdata NewTask = SimpleTask String | HarderTask String Int | CompoundTask String [NewTask] deriving (Show)makePrism...

2018-07-15 10:01:41 285

原创 Haskell语言学习笔记(63)Dicidable

Dicidableclass Divisible f => Decidable f where lose :: (a -> Void) -> f a choose :: (a -> Either b c) -> f b -> f c -> f alost :: Decidable f => f Voidlost = lose i...

2018-07-15 09:59:47 165

原创 Haskell语言学习笔记(62)Divisible

Divisibleclass Contravariant f => Divisible f where divide :: (a -> (b, c)) -> f b -> f c -> f a conquer :: f adivided :: Divisible f => f a -> f b -> f (a, b)divi...

2018-07-15 09:59:09 260

原创 Haskell语言学习笔记(61)Distributive

Distributiveclass Functor g => Distributive g where distribute :: Functor f => f (g a) -> g (f a) distribute = collect id collect :: Functor f => (a -> g b) -> f a -...

2018-07-15 09:58:25 180

原创 Haskell语言学习笔记(60)Biapplicative

Biapplicativeclass Bifunctor p => Biapplicative p where bipure :: a -> b -> p a b (<<*>>) :: p (a -> b) (c -> d) -> p a c -> p b d (*>>) :: p a b -&g

2018-07-14 21:17:05 137

原创 Haskell语言学习笔记(59)Bitraversable

Bitraversableclass (Bifunctor t, Bifoldable t) => Bitraversable t where bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> t a b -> f (t c d) bitraverse f g = bise...

2018-07-14 21:16:32 261

原创 Haskell语言学习笔记(58)Bifoldable

Bifoldableclass Bifoldable p where bifold :: Monoid m => p m m -> m bifold = bifoldMap id id bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> p a b -> m bifoldMap ...

2018-07-14 21:16:00 228

原创 Haskell语言学习笔记(57)Parsec(4)

Parser 类型data ParsecT s u m atype Parsec s u = ParsecT s u Identitytype Parser = Parsec String ()data ParsecT s u m a ParsecT 带四个类型参数:数据流类型 s,用户状态类型 u,底层Monad类型 m,返回类型 a。 ParsecT 是一个Monad转...

2018-07-14 21:15:27 399

原创 Haskell语言学习笔记(56)Lens(3)

手动计算(view, over, set, to, _1)view l = getConst . l Constover l f = runIdentity . l (Identity . f)set l b = runIdentity . l (\_ -> Identity b)to k = dimap k (contramap k)instance Field1 ...

2018-07-14 21:14:48 209

原创 Haskell语言学习笔记(55)Data.Vector

Data.VectorConstructionPrelude V> import Data.Vector as VPrelude V> V.empty[]Prelude V> V.singleton 1[1]Prelude V> V.replicate 5 1[1,1,1,1,1]Prelude V> generate 5 (+1)[1...

2018-07-14 20:56:46 424

原创 Haskell语言学习笔记(54)Data.Set

Data.SetConstructionPrelude> import Data.Set as SPrelude S> emptyfromList []Prelude S> singleton 5fromList [5]Prelude S> insert 3 $ fromList [4,5]fromList [3,4,5]Prelude S> delete 5 $ fromList [

2017-12-14 22:36:38 594

原创 Haskell语言学习笔记(53)Data.Sequence

Data.SequenceConstructionPrelude Data.Sequence> emptyfromList []Prelude Data.Sequence> singleton 3fromList [3]Prelude Data.Sequence> 3 <| fromList [4,5]fromList [3,4,5]Prelude Data.Sequence> from

2017-12-14 22:35:55 531

原创 正则表达式(Java,C#,C++)

课题使用正则表达式匹配字符串 使用正则表达式 “\d{3}-(\d{4})-\d{2}” 匹配字符串 “123-4567-89” 返回匹配结果:’”123-4567-89” 以及 “4567”使用正则表达式替换字符串 使用正则表达式 “\d+” 匹配字符串 “123-4567-89” 将匹配结果即三个数字串全部翻转过来,返回结果 “321-7654-98”。使用正则表达式分割字符串

2017-12-01 19:55:36 679

原创 Haskell语言学习笔记(52)正则表达式

Text.Regex.PCRE.Heavy$ brew install pcre$ cabal install pcre-heavyInstalled pcre-heavy-1.0.0.2Prelude> :m +Text.Regex.PCRE.HeavyPrelude Text.Regex.PCRE.Heavy> Prelude Text.Regex.PCRE.Heavy> :set -X

2017-12-01 19:54:50 914

空空如也

空空如也

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

TA关注的人

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