📝 Haskell教程

17篇技术文档
  Haskell教程

📅  最后修改于: 2020-11-04 06:53:23        🧑  作者: Mango

Haskell是一种广泛使用的纯功能语言。函数式编程基于数学函数。除了Haskell,其他遵循函数式编程范式的其他流行语言包括:Lisp, Python,Erlang,Racket,F#,Clojure等。Haskell比其他流行的编程语言(如Java,C,C++,PHP等)更加智能。在本教程中,我们将使用相关示例讨论Haskell的基本概念和功能,以便于理解。本教程已为初学者准备,让他们了解使用...

  Haskell-概述

📅  最后修改于: 2020-11-04 06:53:46        🧑  作者: Mango

Haskell是一种功能编程语言,专门设计用于处理符号计算和列表处理应用程序。函数式编程基于数学函数。除了Haskell,其他遵循函数式编程范例的其他流行语言包括:Lisp, Python,Erlang,Racket,F#,Clojure等。在常规编程中,指令被视为采用特定语法或格式的一组声明,但是在功能编程的情况下,所有计算都被视为独立数学函数的组合。与Haskell一起运作Haskell是一种...

  Haskell-环境设置

📅  最后修改于: 2020-11-04 06:54:15        🧑  作者: Mango

我们已经在以下网址在线设置了Haskell编程环境:https://www.tutorialspoint.com/compile_haskell_online.php这个在线编辑器有很多选择来练习Haskell编程示例。转到页面的终端部分,然后输入“ ghci”。该命令自动加载Haskell编译器并在线启动Haskell。使用ghci命令后,您将收到以下输出。如果您仍想在本地系统中离线使用Hask...

  Haskell-基本数据模型

📅  最后修改于: 2020-11-04 06:55:00        🧑  作者: Mango

Haskell是一种纯粹的功能编程语言,因此比其他编程语言更具交互性和智能性。在本章中,我们将学习Haskell的基本数据模型,这些数据模型实际上是预定义的或以某种方式智能地解码到计算机内存中的。在本教程中,我们将使用网站(https://www.tutorialspoint.com/codingground.htm)上的Haskell在线平台。号码Haskell足够聪明,可以将某些数字解码为数字...

  Haskell-基本运算符

📅  最后修改于: 2020-11-04 06:55:29        🧑  作者: Mango

在本章中,我们将了解Haskell中使用的不同运算符。与其他编程语言一样,Haskell可以智能地处理一些基本运算,例如加,减,乘等。在接下来的章节中,我们将学习更多有关不同运算符及其用法的信息。在本章中,我们将使用在线平台(https://www.tutorialspoint.com/codingground.htm)在Haskell中使用不同的运算符。请记住,我们仅使用整数类型的数字,因为我们...

  Haskell-决策

📅  最后修改于: 2020-11-04 06:55:46        🧑  作者: Mango

决策制定是一项功能,允许程序员在代码流中应用条件。程序员可以根据预定义的条件执行一组指令。以下流程图显示了Haskell的决策结构-Haskell提供以下类型的决策声明-Sr.No.Statement & Description1if–else statementOneifstatement with anelsestatement. The instruction in theelseblock...

  Haskell-类型和类型类

📅  最后修改于: 2020-11-04 06:56:52        🧑  作者: Mango

Haskell是一种功能语言,它是严格类型化的,这意味着编译器将在编译时知道整个应用程序中使用的数据类型。内置类型类在Haskell中,每个语句都被视为数学表达式,并且此表达式的类别称为Type。您可以说“ Type”是在编译时使用的表达式的数据类型。要了解有关Type的更多信息,我们将使用“:t”命令。以通用的方式,可以将Type视为值,而可以将Type Class视为一组相似类型的Type。在...

  Haskell-函数

📅  最后修改于: 2020-11-04 06:57:46        🧑  作者: Mango

函数在Haskell中起主要作用,因为它是一种函数式编程语言。与其他语言一样,Haskell确实具有自己的功能定义和声明。函数声明由函数名称,其参数列表以及其输出组成。函数定义是您实际定义函数。让我们以添加函数的小示例为例,以详细了解此概念。现场演示在这里,我们在第一行中声明了我们的函数,在第二行中,我们编写了实际的函数,该函数将带有两个参数并产生一个整数类型的输出。与大多数其他语言一样,Hask...

  Haskell-有关功能的更多信息

📅  最后修改于: 2020-11-04 06:58:41        🧑  作者: Mango

到目前为止,我们已经讨论了许多类型的Haskell函数,并使用了不同的方式来调用这些函数。在本章中,我们将学习一些可以在Haskell中轻松使用的基本功能,而无需导入任何特殊的Type类。这些功能大多数都是其他高阶功能的一部分。头部功能Head函数适用于列表。它返回输入参数的第一个,它基本上是一个列表。在以下示例中,我们传递了一个包含10个值的列表,并使用head函数生成了该列表的第一个元素。现场...

  Haskell-函数组成

📅  最后修改于: 2020-11-04 06:59:01        🧑  作者: Mango

函数组合是将一个函数的输出用作另一个函数的输入的过程。如果我们学习作文背后的数学会更好。在数学中,合成用f {g(x)}表示,其中g()是一个函数,其输出用作另一个函数f()的输入。如果一个函数的输出类型与第二个函数的输入类型相匹配,则可以使用任何两个功能来实现功能组合。我们使用点运算符(。)在Haskell中实现函数组合。看下面的示例代码。在这里,我们使用函数组合来计算输入数字是偶数还是奇数。现...

  Haskell-模块

📅  最后修改于: 2020-11-04 06:59:33        🧑  作者: Mango

如果您使用过Java,那么您将知道如何将所有类绑定到一个名为package的文件夹中。同样,Haskell可以视为模块的集合。Haskell是一种功能语言,所有内容都表示为一种表达式,因此Module可以称为相似或相关类型的函数的集合。您可以将函数从一个模块导入另一个模块。在开始定义其他功能之前,所有“ import”语句都应排在第一位。在本章中,我们将学习Haskell模块的不同功能。清单模块列...

  Haskell-输入和输出

📅  最后修改于: 2020-11-04 07:00:03        🧑  作者: Mango

到目前为止,我们讨论的所有示例本质上都是静态的。在本章中,我们将学习与用户动态交流。我们将学习Haskell中使用的不同输入和输出技术。文件和流到目前为止,我们已经对程序本身中的所有输入进行了硬编码。我们一直在从静态变量获取输入。现在,让我们学习如何从外部文件读取和写入。让我们创建一个文件并将其命名为“ abc.txt”。接下来,在此文本文件中输入以下行:“欢迎使用Tutorialspoint。在...

  Haskell-Functor

📅  最后修改于: 2020-11-04 07:00:41        🧑  作者: Mango

Haskell中的Functor是一种可以映射的不同类型的功能表示。这是实现多态性的高级概念。根据Haskell开发人员的说法,所有类型(例如List,Map,Tree等)都是Haskell Functor的实例。Functor是具有函数定义的内置类-根据这个定义,我们可以得出结论:Functor是一个函数,它接受一个函数,例如fmap()并返回另一个函数。在上面的示例中,fmap()是函数map...

  Haskell-Monads

📅  最后修改于: 2020-11-04 07:01:03        🧑  作者: Mango

Monad只是一种带有某些附加功能的Applicative Functor。它是一个Type类,用于管理称为monadic规则的三个基本规则。所有这三个规则都严格适用于Monad声明,如下所示-适用于Monad声明的三项基本法律是-左身份定律–返回函数不会更改值,并且不应更改Monad中的任何内容。它可以表示为“ return> => mf = mf”。权利身份法–返回函数不会更改值,并且不应更改...

  Haskell-拉链

📅  最后修改于: 2020-11-04 07:01:24        🧑  作者: Mango

Haskell中的拉链基本上是指向数据结构(例如树)的某些特定位置的指针。让我们考虑具有5个元素[45,7,55,120,56]的树,可以将其表示为完美的二叉树。如果要更新此列表的最后一个元素,则需要遍历所有元素以到达最后一个元素,然后再进行更新。对?但是,如果我们可以以具有N个元素的树是[(N-1),N]的集合的方式构造树,那该怎么办?然后,我们不需要遍历所有不需要的(N-1)个元素。我们可以直...