先睹为快 Haskell

作者: zidea | 来源:发表于2019-03-14 07:44 被阅读33次
haskell-logo.jpg

Haskell 这是一门难懂语言,早就耳闻,简书上搜了搜资料也不多,
今天简单搭建了一下环境,我的环境是 window ,下载安装包一步一步根据提示安装就好了,比较愉快的搭建环境。
先写一个 helloworld

main print "hello world"
ghc helloworld.hs

然后执行以下就行。

语言特点

语言特点说道 haskell 应该罗列一堆,不过为了突出重点,我个人认为两个特点是 haskell 比较显著的LazyPure

Lazy

o-LAZY-OFFICE-facebook.jpg

听说这是 facebook 的办公室,facebook 员工就是这样休息的那么。

pure

pure-3.jpg

haskell 是一种纯粹的函数式编程语言。在命令式语言中,通过给计算机一系列的任务,然后执行它们,就可以完成任务。

四则运算

没有 ; 表示结束,看格式应该跟 python 有点相似 tab 键来表示层级关系

main = do
    let sum = 2 + 15
    print sum
    let multi = 2 * 15
    print multi
    let minus = 15 - 2
    print minus
    let div = 15 /2 
    print div

最大最小值

main = do
    let minInt = min 9 10
    print minInt
    let minFloat = min 9 10
    print minFloat
    let maxInt = max 9 10
    print maxInt

定义第一个函数

函数定义起来也比较简洁,没有任何啰嗦

main = do
    let doubleMe x = x + x
    print (doubleMe 2)

main = print [1..5]
main = do
    let doubleSmallNumber x = (if x > 100 then x else x*2) + 1  
    print (doubleSmallNumber 2)

条件语句

main = do
    let doubleSmallNumber x = (if x > 100 then x else x*2) + 1  
    print (doubleSmallNumber 2)

集合

main = do
   let nums = [1,2,3]
   print (nums)

为集合添加原生

main = do
    let helloworld = 5:[1,2,3,4,5]  
    print (helloworld) // [5,1,2,3,4,5]  

根据 index 获取数组原生

main = do
    let nums = [1,2,3,4,5]
    let second = nums !! 2
    print second // 3
main = do
    let nums = [1,2,3,4,5]
    print nums
    let tailRes = tail [1,2,3,4,5]
    print tailRes
    let headRes = head [1,2,3,4,5]
    print headRes
    let initRes = init [1,2,3,4,5]
    print initRes

输出结果

[1,2,3,4,5]
[2,3,4,5]
1
[1,2,3,4]

相关文章

  • 先睹为快 Haskell

    Haskell 这是一门难懂语言,早就耳闻,简书上搜了搜资料也不多,今天简单搭建了一下环境,我的环境是 windo...

  • 函数式的宗教-00: 认识lisp(clojure)与haske

    总体大纲: lisp与haskell简单介绍 lisp与haskell应用领域 lisp与haskell技术分析 ...

  • monad以及monad的四条定理

    haskell的范畴是hask范畴(haskell的所有类型隶属于hask范畴),所以haskell的所有函子都是...

  • 01 数据类型

    swift中结构体在haskell中的描述 枚举类型在haskell中的描述 枚举携带类型在haskell中描述 ...

  • Haskell学习-函数式编程初探

    原文地址:Haskell学习-函数式编程初探  为什么要学习函数式编程?为什么要学习Haskell?  .net到...

  • Haskell

    [TOC] Haskell GHCI 通过Tab可以自动补全 通过 :browser 模块名称,浏览该模块下的函数...

  • haskell

    我在这里只是表达此刻内心想到的一些事情,或者记录自己关于最近学习生活工作的想法。 从我这一周对haskell的学习...

  • [Haskell] $

    函数“$”称为function application operator,定义如下: 与函数调用不同的是,函数调用...

  • [Haskell] .

    函数“.”称为function composition,定义如下: 我们看到,函数f接受函数g的返回值作为参数。函...

  • haskell

    stack --resolver lts-9 install ghc-mod Haskell-ghc-mod ::...

网友评论

    本文标题:先睹为快 Haskell

    本文链接:https://www.haomeiwen.com/subject/gusfmqtx.html