代码之家  ›  专栏  ›  技术社区  ›  Mayuresh

哪种编程语言更实用,haskell或python?[关闭]

  •  5
  • Mayuresh  · 技术社区  · 15 年前

    在学校的函数式编程课程中学习了哈斯克尔。发现哈斯克尔有点难相处。现在已经在python上做了很多工作。Python非常容易使用。

    python确实支持一些函数式编程结构。

    正在考虑重新访问函数式编程。什么是更好的代码语言?哈斯克尔还是巨蟒?为什么?

    6 回复  |  直到 12 年前
        1
  •  33
  •   Norman Ramsey    12 年前

    在其他地方,您会发现许多关于Python程序员不应该使用像lambda这样的功能特性的批评。亚历克斯·马泰利在这方面特别擅长。但是如果你以一个Python程序员的身份来处理函数式编程,你将不会对 为什么 人们首先对函数式编程感兴趣。尤其是,您将无法访问强大的静态类型系统和代数数据类型。这些工具绝对是haskell思想的一部分。

    函数式编程并不是一套功能的一种思考方式。要想看到这种思维方式并开始学习,请看这篇论文 Why Functional Programming Matters 约翰·休斯。从休斯身上学到的东西,你可以很容易地申请到哈斯克尔。事实上,哈斯克尔更有可能 你要学会新的思维方式。使用python,您可以在这里或那里使用一些lambda,并愚弄自己正在学习函数式编程。你不会的。

    这就是说,哈斯克尔可以一次吞下很多东西。如果你觉得很困难,你可能想试试 Standard ML Racket (以前称为PLT方案或DRSCHEME)。标准的ML会给你介绍更多的新想法,但是这些人并没有像球手或哈斯凯尔人那样团结起来欢迎新来者。

        2
  •  38
  •   hammar Muthumani    13 年前

    哈斯克尔 一种函数式编程语言,而python 只是有一些特点 函数式编程语言。所以,这就解决了。Q.E.D.

    编辑: 巨蟒缺少什么,只是为了 例如,是 optimization of recursive function calls . 这在大多数情况下是至关重要的 真实的 函数式编程语言。

    顺便说一句,谷歌刚刚产生了 this nice article .

        3
  •  11
  •   mipadi    15 年前

    这个问题突出了我对函数式编程的共同理解的一个恼怒。拥有诸如闭包和一流函数之类的语言特性并不能使语言成为 函数式程序设计语言 . 函数式编程与特定的 风格 关于特定语言结构的编程。python有闭包、一流的函数,是的,甚至还有一个称为“map”的函数,但是语言本身鼓励一个过程的OOP, 命令性 编程风格;因此,即使您使用了功能特性,您仍然需要进行编程。

    作为一个 纯功能语言 ,haskell基本上要求 声明的 功能风格,所以说,Haskell比Python“功能更强大”。

        4
  •  7
  •   CharlieP    15 年前

    虽然python确实支持一些函数结构,但是haskell 功能性语言。你还需要考虑的是,哈斯克尔 纯粹的功能 懒惰的 ,这两个概念可能是你在Haskell中发现困难的原因。如果是这样,请继续阅读。

    当然,如果你有时间学习另一种不那么复杂的功能性语言,你可能会想考虑。我发现,在转到haskell之前学习一种不太“激进的功能性”语言是值得采取的一步。您可能想考虑OCAML(Objective CAML),另一种函数式编程语言,它既不纯粹也不懒惰。因此,一些必需的编程结构(引用、循环、可变数组等)对您是可用的,并且在您真正想要之前,您不必处理monad。

    这完全取决于您愿意花多少时间重新访问函数式编程,以及您在这个相同范例中的当前背景。

        5
  •  0
  •   Carl Smotricz    15 年前

    博尔德温说的。haskell是目前最“核心”的功能语言之一。 在没有任何方法保持可变状态的情况下 .

    这就是说,Haskell与大多数人接触的命令式和混合型语言有着惊人的区别,因此如果有来自VB或C(++)或Java的背景,就会有学习曲线。

    另一方面,python有一个“功能展示和说明”部分,其中一些功能特性可以在一个以其他方式为主的命令式环境中进行测试驱动。

    因此,如果在他最初的问题中,OP的“更好”意味着“更具功能性”或“功能性土地的更好公民”(正如他后来更清楚地说的那样),那么哈斯克尔就“赢”了。

        6
  •  -4
  •   Aaron Digulla    15 年前

    Haskell homepage :

    haskell是一种高级的纯函数编程语言。一款开源产品,经过二十多年的尖端研究,它允许快速开发健壮、简洁、正确的软件。

    讽刺翻译:

    • “advanced”=“不适用于所有人”
    • “纯功能”= 一定地 不是所有人都能做到的”
    • “二十多年”=“但仍然不是每个人都喜欢它!”
    • “尖端研究”=“您可能会发现一个实际问题,您可以用它解决,但我们仍在努力解决它!”
    • “Robust,简明,correct software”=“是否缺少简单、易懂、明显、易读的软件?”猜猜为什么!”

    撇开玩笑不谈,功能性语言不适合大多数人,永远也不会。有些人可以像一堆人一样思考,但我,作为一个,更喜欢电脑努力去理解我的胡言乱语。