精华内容
下载资源
问答
  • Haskell入门

    2021-02-08 09:53:51
    一、 什么是haskell? haskell是一种现代的、标准的、非严格的、纯功能的编程语言。它提供了上面勾勒出的所有功能,包括多态类型、惰性评估和高阶函数。它还具有一种创新的类型系统,支持系统化的过载和模块系统。它...

    一、 什么是haskell?

    haskell是一种现代的、标准的、非严格的、纯功能的编程语言。它提供了上面勾勒出的所有功能,包括多态类型、惰性评估和高阶函数。它还具有一种创新的类型系统,支持系统化的过载和模块系统。它专门设计用于处理从数值到符号的广泛应用。为此,haskell具有富有表现力的语法和丰富的内置数据类型,包括任意精度整数和理性,
    以及更传统的整数、浮点和布尔类型。有很多编译器和解释器可用。全部免费。在计算机上安装haskell的推荐方式是通过haskell平台。

    二、为什么要使用haskell?

    编写工作的大型软件系统是困难和昂贵的。维护这些系统更加困难和昂贵。函数式编程语言(如haskell)可以使它更容易、更便宜。

    例如:在haskell中撰写小型关系DBMS的新用户这样说
    哇!我基本上写这个没有测试,只是考虑我的程序在类型之间转换。我编写了测试/示例代码,代码中几乎没有实现错误!

      编译器/类型系统非常善于防止您犯编码错误!
    

    即使你无法在编程项目中使用haskell,学习haskell也可以使你在任何语言中成为一个更好的程序员。

    三、haskell适用场景?

    haskell适用于各种应用。它特别适用于需要高度可修改和维护的程序。
    软件产品的很多寿命都花在规格、设计和维护上,而不是花在编程上。
    函数语言是极好的编写规范,可以实际执行(因此测试和调试)。这样一个规范就是最终程序的第一个原型。功能程序也相对容易维护,因为代码更短、更清晰,而且严格控制副作用消除了大量不可预见的交互。

    四、haskell优点?

    1.大幅提高程序员的工作效率。
    2.更短、更清晰、更可维护的代码。
    3.错误更少,可靠性更高。
    4.程序员和语言之间的“语义差距”较小。
    5.缩短交货时间。

    五、函数编程有什么好?

    电子表格和SQL都是相当专业的语言。函数式编程语言采取相同的想法,并将它们移动到通用编程领域。要了解函数语言的表现力,请看一下快速排序程序。它们都使用称为“快速排序”的标准方法将一系列数字按升序排序。

    C程序和Haskell程序不同之处?
    C程序描述了计算机执行排序必须执行的特定步骤(大多数代码处理数据操作的低级细节),Haskell程序对排序算法进行更高级别的编码,结果提高了简洁性和清晰度。

    六、Haskell快排序

    关于Haskell语法,首先要了解的是括号用于分组,而不是函数应用程序。函数f对参数x的应用是写入f x的。不一定是f(x)。它可以写成f(x)来将其与周围环境分开。

    quicksort::Ord a=>[a]->[a]
    quicksort[]   == []
    quicksort(p:xs)=(quicksort lesser)++[p]++(quicksort greater)
      where
         lesser = filter(<p)xs
         greater = filter(>=p)xs
    

    括号表示方程右侧操作数的分组。在左侧,它们指示函数参数的模式。
    括号围绕两个函数调用,没有必要-因为函数应用程序绑定比infix运算符更紧密-并且只是为了清楚起见。
    (quicksort lesser) | (quicksort greater)

    七、如何学习haskell?

    学习haskell最简单的方法就是用课本。有很多在线教程,但你将更容易从一本书中学习基础知识。毕竟,haskell与传统主流语言非常不同,就像重新学习编程一样。

    参考地址:https://wiki.haskell.org/Introduction#How_can_I_learn_Haskell.3F

    展开全文
  • haskell入门

    2015-05-02 16:26:53
    haskell

    haskell

    haskell交流群->434427410

    入门

    haskell安装(for mac)

    安装ghc(haskell的编译器)
    brew install ghc
    安装cabal(haskell的包管理工具,类似python的pip,ruby的gem)
    brew install cabal-install

    hello world

    新建文件xppiao.hs
    main = putStrLn "Hello, World!"
    编译
    ghc xppiao.hs -o xppiao
    运行
    ./xppiao

    相关特性

    1. 类型

      • 类型安全(type safe) -> 所有类型错误都会在编译阶段被发现
        • 内建类型 List Tuple Integer Char
      • 多态(polymorphic function) -> 函数可以接受不同的参数
      • 自定义类型(User-Defined Types) -> 关键词data
        • data Color = Red | Green | Blue | Indigo | Violet
    2. 小例子

      • 快排的定义

            quicksort  []           =  []
            quicksort (x:xs)        =  quicksort [y | y <- xs, y<x ]
                                    ++ [x]
                                    ++ quicksort [y | y <- xs, y>=x]
      • length的定义

            :: [a] -> Integer
            length []               =  0
            length (x:xs)           =  1 + length xs

    相关资源

    文档

    Haskell the hard way
    haskell cookbook
    基本语法
    文档
    基本概念

    实践

    FP课程
    haskell的99个问题
    haskell Quiz
    48小时写一个scheme

    图书

    Real World Haskell

    展开全文
  • Haskell 入门

    千次阅读 2008-09-04 00:30:00
    Haskell 入门五步走感觉 haskell 的缩进方式和 python 的像,省掉了 scheme 的重重括号,不过优雅的前缀表达式就不能用了吧?还是先学好 scheme 吧。借了一本两年前借过但是没怎么看的书——《程序设计方法》,不过...

    星期二下午去听乔老师的函数程序设计,给了个 Haskell 的例子之后,看到只来了四个人,索性就不讲了。。。

    于是就自己找了入门教程来看了。。

    Haskell 入门五步走

    感觉 haskell 的缩进方式和 python 的像,省掉了 scheme 的重重括号,不过优雅的前缀表达式就不能用了吧?

    还是先学好 scheme 吧。借了一本两年前借过但是没怎么看的书——《程序设计方法》,不过我还是先学 SICP 咯。

    展开全文
  • makeMistakesToLearnHaskell:学习Haskell时出错-失败しながら学ぶHaskell入门
  • stack官方网站: ...首先: 在终端下键入下面这条命令: ... 出现以下情况: 在终端下输入命令: sudo apt install curl ...stack new my-project ...stack setup //作用:为你的项目找到合适的GHC stack build //作用:在此...
  • Mac上的Haskell入门

    千次阅读 2018-02-08 18:22:46
    编译器用ghci,可以在haskell.org上下载,下载完成后完成安装,编译器就完成。2.下载社区版IDEA,完成后下载Haskell插件(https://plugins.jetbrains.com/plugin/8258-intellij-haskell),后打开IDEA,打开Install ...

    本文主要阐述开始写程序前的准备和常见问题:

    1.编译器用ghci,可以在haskell.org上下载,下载完成后完成安装,编译器就完成。

    2.下载社区版IDEA,完成后下载Haskell插件(https://plugins.jetbrains.com/plugin/8258-intellij-haskell),后打开IDEA,打开

    Install Plugin from disk

    导入压缩文件插件,确认工作路径,在其中一步有要求选择stack,在底部找到“stack”就好。

    3.创建脚本:终端touch **.hs文件作为脚本,默认创建在user下的用户文件夹里,可以更改路径到工作路径下就不必每次给出全路径。

    基本的界面如图所示。

    4.调用ghci:打开IDEA右下角的terminal,这与mac的terminal直接关联,打开后输入ghci,出现preclude>加载完成,然后输入“:l **(创建的文件名).hs"(注意文件的路径,尽量给出全路径避免无法找到),即可开始编辑


    5.导入Data.List,System.IO,并在终端输入同样字样

    6.接下来的编辑思路是:在IDEA上编写脚本,每次变动后在终端处输入":r"(:不能忽略)即可进行运行。haskell与java,c一类的编译不同,如果脚本没错module会正常运行,同时还要在终端上按名引用function才能进行。

    7.haskell的语法方面,可以参考http://learnyouahaskell.com/chapters,以下的讲解均源自其思路,如需该电子书对的作者讲解,请移步youtube检索"haskell tutorial"即可。以上的运行方式只是其中一种,其他的方法包括不局限于:获取IDE,利用文本编辑器编辑,直接在ghci上交互执行。主要适用于未接触过文本编辑的(以Java,C入门的,并长期使用已有集成环境开发的)伸手党。

    8.常见问题:

    1)不能在ghci上交互式定义变量,否则出现“variable not in scope"


    按如上方法定义必须在脚本中完成:(注意可以正常执行)


    事实上,不声明size的类型也是可以的,即在ghci上直接输入size=5;

    2)必须给出方法名,按名引用,如本例中若直接给"2*size"将会报错:


    若有后续问题还会再开贴分析。

    新手一枚,CSDN首文一枚,若有捉襟见肘之处还望轻喷

    展开全文
  • Haskell 入门(一):定义一个函数

    千次阅读 2016-02-22 01:15:53
    首先呢,Haskell 和我们平时经常看见的 C++/Java 和 C 等面向对象和面向过程的语言不同,Haskell 是一门函数式语言. 这意味着很多在面向对象/过程语言上常用的语法在 Haskell 将完全不一样. 例如:Haskell 没有 for...
  • http://learnyousomeerlang.com/erlang http://learnyouahaskell.com/haskell
  • haskell中文入门资料

    2013-08-20 17:31:37
    haskell中文入门资料,代码齐全,入门简单
  • HASKELL起步入门教程

    2019-04-30 23:49:46
    HASKELL起步入门教程  Haskell作为一门纯函数语言,它有以下特点: Haskell强表达能力可以提高软件的生产力 小语言核心提供了很大的灵活性 代码可以很简洁,提高开发速度 从编译和解释两种语言中都能得到两全其美的...
  • Haskell Function Programming Monads 讲解清楚明了 希望能够让你从此进入 Haskell 的大门
  • [No Starch Press] Haskell 趣味入门教程 (英文版) [No Starch Press] Learn You a Haskell for Great Good! A Beginner's Guide (E-Book) ☆ 出版信息:☆ [作者信息] Miran Lipovaca [出版机构] No Starch ...
  • Haskell 快速入门

    2009-12-03 15:16:13
    一.序 [b]1.什么是Haskell?[/b] ... Haskell是一种函数编程语言. 1980年代以前对函数编程有很多研究, 但不同的研究者使用... Haskell吸收了各家的长处, 是一种纯粹的函数编程语言,并根据科学家Haskell B.Curr...
  • haskell简明入门(一)

    2018-05-27 10:23:00
    本文的主要内容参考自《Haskell趣学指南》 1. What is Haskell? 以下内容引用自Haskell官网: Haskell是一个先进的,纯粹的函数式编程语言。一个典型的声明式地,静态类型的代码如下: primes = filterPrime [2..] ...
  • Haskell入门知识

    2014-06-30 00:57:57
    --条件语句: --例子: --求三个数的最大值: maxThree :: Int -> Int -> Int -> Int maxThree x y z  | x>=y&&x>=z = x  | y>=z = y  | otherwise = z   --求两个数的较
  • Haskell函数式编程入门
  • Haskell入门套件 一个使用PostgreSQL数据库的简单后端服务器。 与Docker一起运行 您需要在系统中安装docker。 然后运行: make deps make run 使用堆栈进行开发 要构建项目: stack build 要运行数据库: docker...
  • Haskell_Programming

    2017-07-22 20:20:36
    haskell入门书 Christopher Allen
  • haskell教程

    2013-07-07 14:28:08
    haskell入门教程,中文翻译,适合初学者
  • 本节书摘来自异步社区《Haskell函数式编程入门》一书中的第1章,第1.1节Haskell的由来,作者 张淞,更多章节内容可以访问云栖社区“异步社区”公众号查看 第1章Haskell简介Haskell函数式编程入门本章首先介绍Haskell...
  • Haskell入门
  • haskell及ghc入门使用

    千次阅读 2016-01-10 23:43:08
    一.haskell语言的特性 1.haskell是纯函数式编程语言,它是引用透明的,没有副作用。haskell的一个函数如果定义了变量a为1,a是不可变的。没有可变的状态带来的好处是函数的调用结果不依赖于外部的状态,也不会修改...
  • Programming in Haskell

    2018-10-30 14:23:51
    很好的Haskell入门书籍,学习后可以对函数式编程有一个清晰的了解
  • Haskell趣学指南

    2016-12-28 14:28:12
    haskell入门的极好教程

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 282
精华内容 112
关键字:

haskell入门