首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏我的独立博客

    ghci中的一些命令与case 【持续更新...】

    ghic中模式匹配 按照rwh书中模式匹配一节中sumList的例子在ghci敲出这样的代码: Prelude> sumList (x:xs) = x + sumList xs Prelude> sumList sumList [1,2,3] *** Exception: <interactive>:2:1-14: Non-exhaustive patterns in function sumList 而实际如何要在ghci 中做一个模式匹配函数的话应该这样写: Prelude> let { sumList' [] = 0; sumList' (x:xs) = x + sumList' xs } Prelude> sumList' [1,2,3] 6 ghci

    21110编辑于 2024-09-02
  • 来自专栏一个会写诗的程序员的博客

    来看看几种 Monad来看看几种 Monad

    ghci> fmap (++"!") (Just "wisdom") Just "wisdom!" ghci> fmap (++"!") ghci> Just (+3) <*> Just 3 Just 6 ghci> Nothing <*> Just "greed" Nothing ghci> Just ord <*> Nothing ghci> Nothing >> Just 3 Nothing ghci> Just 3 >> Just 4 Just 4 ghci> Just 3 >> Nothing Nothing ghci> guard (5 > 2) :: Maybe () Just () ghci> guard (1 > 2) :: Maybe () Nothing ghci> guard ( > let f x = [x,-x] ghci> let g x = [x*3,x*2] ghci> let h = f <=< g ghci> h 3 [9,-9,6,-6] 至于这跟结合律有什么关系呢

    1.4K20发布于 2018-12-12
  • 来自专栏我的独立博客

    Haskell 自定义type与typeclass

    record syntax表示: data List a = Empty | Cons {headList::a, tailList::List a} deriving(Show,Read,Ord) ghci > Empty Empty ghci> 5 `Cons` Empty Cons 5 Empty ghci> 4 `Cons` (5 `Cons` Empty) Cons 4 (Cons 5 Empty) 这样我们就可以这样写: ghci> 3 :-: 4 :-: 5 :-: Empty (:-:) 3 ((:-:) 4 ((:-:) 5 Empty)) ghci> let a = 3 :-: 4 :-: 可以在 ghci 中输入 :info YourTypeClass。所以输入 :info Num 会告诉你这个 typeclass 定义了哪些函数,还有哪些类型属于这个 typeclass。 我们可以在ghci中通过:k来获取一个类型的kind: Prelude> :k Int Int :: * *代表这个类型是具体类型。一个具体类型是没有任何类型参数的,值只能属于具体类型。

    59610编辑于 2024-09-02
  • 来自专栏子曰五溪

    Haskell

    ghc包含了三个主最要的部分: ghc 编译器 ghci 交互式解析器和调试器 runghc 以脚本的方式运行Haskell 而我们即将学习的起点就是在ghci中来练习Haskell的基本语法。 在终端输入ghci进入交互式界面: Prelude> 1+(-1) = 0 据说“命令式属于工程师”,“函数式属于科学家”,这门语言还有哲学层面的东西。

    1.3K30发布于 2019-06-24
  • 来自专栏掘金安东尼

    热爱函数式的你,句句纯正的 Haskell【类型篇】

    GHCi 是 GHC 的一部分,可以解析、调试 Haskell 程序。 认识下 GHCi 中的命令: :l 用来导入当前路径或者指定路径下的文件; Prelude> :l "C:\\Users\\ User\\Desktop\\HelloWorld\\HelloWorld.hs " :r 用来重新导入当前的源代码文件; :cd 改变当前GHCi的路径; Prelude> :cd C:\Users\User\Desktop :edit 用默认的文本编辑器编辑当前导入的文件 在 GHCi 里输入['H', 'e', 'l', 'l','o'],会得到 "Hello" Prelude> ['H', 'e', 'l', 'l','o'] "Hello" tuple 元组类型,如

    1.9K30编辑于 2022-09-19
  • 来自专栏黯羽轻扬

    模块_Haskell笔记2

    Data.Map import qualified Data.Map as M hiding语法能够缓解命名冲突问题,但不很方便,对于存在大量命名冲突的模块,可以通过qualified保留命名空间来避免冲突 GHCi 环境 通过:m命令引用模块: > :m Data.List > :m Data.List Data.Map Data.Set GHC 7.0之后,支持在GHCi环境直接使用import语法: > import qualified Data.Map as M > M.fromList [('a', 1)] fromList [('a',1)] 所以,不用关注环境区别,具体见import qualified in GHCI

    2.2K30发布于 2019-06-12
  • 来自专栏黯羽轻扬

    深入typeclass_Haskell笔记4

    后两条函数实现是可选的,通过间接递归定义来描述这两个函数的关系,这样只需要提供一个函数的实现就够了(这种方式称为minimal complete definition,最小完整定义) P.S.GHCi环境下 P.S.GHCi环境下,可以通过:info <type>命令查看该类型属于哪些typeclass 子类 同样,也有子类的概念,是指要想成为B类成员,必须先成为A类成员的约束: class (Eq a) 类似的,kind是类型的类型,算是对类型的分类 GHCi环境下,可以通过:kind命令查看类型的类型,例如: > :k Int Int :: * > :k Maybe Maybe :: * -> * >

    79810发布于 2019-06-12
  • 来自专栏MelonTeam专栏

    Heskell与函数式编程

    编写第一个Haskell 编写Haskell之前需要把Haskell Platform下载下来(https://www.haskell.org/platform/),安装后使用ghci就可以进行Haskell 我的电脑是Windows,在Windows下打开cmd,输入ghci,就能进入编程界面,在这个界面能够进行简单的编码,比如下面: ? 这里简单的进行了一次 3+5的求和操作。

    1.2K70发布于 2018-01-04
  • 来自专栏我的独立博客

    Haskell 函数语法

    '’ • In the expression: lucky' "a" In an equation for ‘it’: it = lucky' "a" tip: 在8.8.1版本ghcighci 中 in 部分也可以省略,名字的定义就在整个交互中可见。

    42910编辑于 2024-09-02
  • 来自专栏黯羽轻扬

    newtype_Haskell笔记8

    libraries/base/GHC/Err.hs:79:14 in base:GHC.Err undefined, called at <interactive>:12:1 in interactive:Ghci1 libraries/base/GHC/Err.hs:79:14 in base:GHC.Err undefined, called at <interactive>:37:10 in interactive:Ghci17

    1K30发布于 2019-06-12
  • 来自专栏pydata

    ubuntu 14.04 install haskell

    D make install sudo aptitude purge ghc 编辑.bashrc文件 PATH="/usr/local/ghc/bin:$PATH" source ~/.bashrc ghci

    1.1K10发布于 2018-08-02
  • 来自专栏刘笑江的专栏

    learn-haskell

    Day1 逻辑 在OS X下安装Haskell环境:brew install haskell-platform 通过命令启动交互式环境:ghci 基本类型 {- basic type -} Prelude with type def -} double_int :: Integer -> Integer double_int x = x + x {- load .hs in GHCi

    1.6K30发布于 2018-05-28
  • 来自专栏我的独立博客

    Haskell Type与Typeclass

    Type ghci中可以用:t检测表达式的类型 Prelude> :t "a" "a" :: [Char] 函数也有类型,编写函数时给一个明确的类型声明是一个好习惯 removeNonUppercase

    64410编辑于 2024-09-02
  • 来自专栏我的独立博客

    Haskell 基础

    第一个函数 创建doubleMe.hs文件,编写如下代码: doubleMe x = x + x 保存,打开ghci,输入 Prelude> :l doubleMe.hs 这样我们就加载了我们的doubleMe

    58810编辑于 2024-09-02
  • 来自专栏黯羽轻扬

    铁定不纯的IO_Haskell笔记5

    async function,I/O Action只能出现在do语句块中,这一点类似于await P.S.实际上,执行I/O Action有3种方式: 绑定给main时,作为入口函数 放到do语句块里 在GHCi 环境输入I/O Action再回车,如putStrLn "hoho" 执行 可以把main当做普通函数在GHCi环境下执行,例如: > :l echo [1 of 1] Compiling Main

    1.9K30发布于 2019-06-12
  • 来自专栏区块链大本营

    七夕送礼很发愁?自己编写一个区块链送女友吧~

    Account 0, _to = Account 1, _amount = 1000}] let totalVolume = sum $ map _amount txns -- 2000 我使用 stack ghci txnPool 0 chain chain <- mineOn txnPool 0 chain chain <- mineOn txnPool 0 chain return chain -- GHCI

    1.2K160发布于 2018-05-10
  • 来自专栏黯羽轻扬

    基础语法_Haskell笔记1

    判断不等于(数学家的语言,所以不等号长这样) 注意,类型必须严格一致才能比较,否则报错认为没有可比性(1 == True会报错),但认为整型与浮点型是可比的(1 == 1.0是True) 运算符优先级 在GHCi 部分定义的变量/函数只对in部分可见 注意,同样要求多行声明要严格对齐,非要单行就用分号隔开 P.S.let-in的in部分可以省略,作用域扩展到当前函数/List Comprehension,如果是在GHCi

    2.8K30发布于 2019-06-12
  • 来自专栏LINUX阅码场

    Linux对机密计算的支持

    TDs需要使用Guest-Host-Communication Interface(GHCI)与Intel TDX模块和主机VMM进行通信。 GHCI提供了一种标准化的方法,供TDs与Intel TDX模块进行交互,并与主机VMM交换信息。 通过利用指令集架构和MKTME引擎以及GHCI,Intel TDX模块促进了TDs与主机VMM之间的安全通信和协调,确保了TDs与底层平台的隔离和保护。

    2.2K31编辑于 2023-08-21
  • 来自专栏黯羽轻扬

    类型_Haskell笔记3

    MyEmptyList)) > _map (+ 1) (_fromList [1, 2, 3]) 2 :> (3 :> (4 :> MyEmptyList)) 派生 只有Show类(typeclass)的成员才能在GHCi

    1.3K40发布于 2019-06-12
  • 来自专栏四火的唠叨

    从 Java 和 JavaScript 来学习 Haskell 和 Groovy(类型系统)

    再看 Haskell,在 ghci 中使用 :t 可以输出类型: :t "" // :: [Char] :t 'a' // :: Char :t 3 // :: Num a => a

    1K50编辑于 2022-07-19
领券