`
诺铁
  • 浏览: 35291 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

有趣的haskell

阅读更多

写haskell程序就像玩个角色扮演游戏。一个角色A有手有脚视力2.0,唯独没脑子,什么问题都不会解决。另一个角色B全能但是无知无识无手无脚,啥也干不了,整个故事就是角色A拿碰到的需要解决的问题去问B。

但是B无知无识,问问题着实不容易,就像《你是我的眼》里唱的,“眼前的黑不是黑,你说的白是什么白” 。所以都得定义成抽象的概念才能让B去解决问题。

对我这样用惯了java自己想办法解决问题的程序员来说,转换到这种把自己变成一个提问题的角色,还挺难的。 不过语言的能力着实强大。只要你能把问题问清楚,结果就出来了。

比如,quicksort,你就告诉他,我要让一个list里面的每个元素x左边的都比它小,右边的都比他大,你就得到了。

 

quicksort (x:xs) =   
    let smallerSorted = quicksort [a | a <- xs, a <= x]  
        biggerSorted = quicksort [a | a <- xs, a > x]  
    in  smallerSorted ++ [x] ++ biggerSorted  
分享到:
评论

相关推荐

    Haskell趣味学习中文版

    Haskell的语言特性使得它在某些方面可能初看起来比较“别扭”,但实际上它能够强迫你以不同的视角去思考编程问题,这是一门非常有趣且值得学习的语言。无论你是否对编程有浓厚的兴趣,掌握了Haskell之后,都会发现它...

    Python-TensorFlow的Haskell语言绑定

    总之,Python-TensorFlow的Haskell语言绑定项目提供了一个有趣的交叉点,结合了Haskell的编程范式和TensorFlow的机器学习能力,为开发者提供了一条独特的发展路径。深入理解和掌握这些知识点,将有助于你在Haskell中...

    The Haskell Road to Logic, Math and Programming

    - **Haskell 游戏**:通过一系列有趣的练习来熟悉 Haskell 的基本语法。 - **类型系统**:进一步探讨 Haskell 的类型系统及其重要性。 - **素因数分解算法**:介绍了一个实用的算法,并展示了如何用 Haskell 实现它...

    Snippets:小小的失败和有趣的Haskell片段

    "Snippets:小小的失败和有趣的Haskell片段"这个标题暗示了我们将探讨一些在Haskell编程过程中可能遇到的小问题以及解决这些问题时产生的有趣代码片段。这些片段可能是对Haskell特性的深入探索,或者是通过巧妙的编程...

    haskell-opencv:Haskell绑定到OpenCV-3.x

    本文将深入探讨一个独特且有趣的项目——"haskell-opencv",它是Haskell编程语言与OpenCV库的完美结合,为Haskell开发者提供了直接操作OpenCV-3.x接口的能力。 OpenCV,全称Open Source Computer Vision Library,...

    Learn You A Haskell For Great Good Mar 2011.pdf

    1. **幽默风趣的语言风格**:本书的一大特点是采用了轻松幽默的写作风格,使原本枯燥难懂的编程概念变得生动有趣,更容易被读者接受。 2. **丰富的示例代码**:书中提供了大量的示例代码,通过实际案例来解释各种...

    haskell-training:这是我关于Haskell编程语言的整个培训课程

    Haskell培训 您将在此存储库中找到有关Haskell编程语言的所有我的培训。 以下是按时间顺序排列的主要类别: ... 语法也是Haskell的强项之一:因为整个语法都是可编辑的,所以它使代码体验变得更加有意义和有趣。

    programming_in_haskell

    SML确实很有趣,但是与Haskell和SML的REPL系统相比,语法非常难看(在我的案例中是我的发行版回购中的smlnj),它不像GHCI那样易于使用。 [fn:1]在SML中,S停留在Stndard,ML停留在Meta Language

    haskell-shell:用Haskell编写的shell

    我使用Haskell是因为我认为将函数式编程应用于通常需要保持大量状态并进行大量IO的程序类型会很有趣。 结果远非完美,但我对Haskell编程,状态编程以及我自己的设计能力的见解非常值得体验。 内置命令 cd :更改...

    sudoku-solver:在 Haskell 中解决 AI 的超级简单数独

    总之,Haskell的数独求解器是一个很好的实践案例,它不仅展示了函数式编程语言在解决逻辑问题上的优势,同时也为学习Haskell的程序员提供了一个有趣的练习项目。无论你是对数独感兴趣,还是想要深入理解Haskell,这...

    hgame:Haskell 游戏引擎

    Haskell以其强大的类型系统、 lazy evaluation(惰性求值)特性以及对并行和并发的良好支持,为游戏引擎提供了一种独特而有趣的实现方式。 在Haskell游戏引擎的开发中,主要涉及到以下几个关键知识点: 1. **...

    提高Haskell函数程序设计基础课程完成率的翻转课堂探讨.docx

    具体措施包括制作高质量的教学视频、加强课堂互动以及设计有趣且富有挑战性的教学案例。这些努力不仅有助于提高学生的学习成效,还能促进Haskell语言在国内高校中的普及和发展,为我国培养更多具备扎实理论基础和...

    ChessKell:用Haskell编写的国际象棋引擎

    用Haskell编写的国际象棋引擎。 支持3种游戏模式: 人与人之间的最佳移动评估(仅限终端机) 引擎与引擎之间,游戏的输出通过管道传输到GNU xboard(GUI) 人与引擎(带有xboard的GUI) 最初,minimax算法用于...

    advent-of-code-haskell:Haskell 代码解决方案的出现

    Advent of Code是一个每年进行的在线编程挑战活动,旨在通过一系列有趣的编程问题来提升参与者的技能。 描述中的“代码Haskell的到来”意味着这个项目可能是一个学习和实践Haskell的起点,尤其是通过解决Advent of ...

    haskell-differentiator:用 Haskell 编写的玩具区分器

    【Haskell语言与微分器】 Haskell是一种纯函数式编程语言,...这个项目不仅是一个有趣的编程练习,也是学习Haskell和微积分交互方式的好例子。对于想要了解函数式编程或Haskell语言的人来说,这是一个很好的学习资源。

    haskell-checkio:用 Haskell 重写 Checkio.com 任务

    Checkio.com是一个在线平台,它提供了一系列有趣的编程任务,旨在帮助用户提升编程技能。而“重写”意味着该项目是对原任务的实现,可能是为了学习Haskell,或者对比不同编程语言的解决方案。 【描述分析】 描述中...

    tiger-haskell:Haskell 中的现代编译器实现(Tiger 编程语言)

    这是一个尝试创建一个tiger编程语言编译器,因为我想在做一些有趣的事情的同时学习Haskell。 一年前,我参加了耶鲁 CPSC 421 课程,我们用 SML 为同一种语言实现了一个编译器。 那时我们有很多样板代码,但这次我会...

    cs1501-final:Haskell类最终项目-Haskell中的游戏

    【标题】"cs1501-final:Haskell类最终项目-Haskell中的游戏"揭示了这是一个基于...这将涉及到对Haskell语言特性的深入理解和创造性应用,同时也为学习者提供了一个有趣的实践平台,以巩固和提升他们的编程技能。

    adventofcode_in_haskell:懒惰地与Haskell进行AoC 2020修补

    Advent of Code(简称AoC)是一项每年举办的编程挑战活动,旨在通过解决一系列有趣的编程问题来提升编程技巧和逻辑思维能力。2020年的挑战吸引了全球众多程序员参与,其中不乏使用Haskell这一纯函数式编程语言的...

Global site tag (gtag.js) - Google Analytics