haskell
原创
2022-10-30 05:55:49
84阅读
Haskell 是一门纯函数式编程语言(1990年发布),以数学家 Haskell Curry 命名。它彻底颠覆了命令式编程思维,用数学逻辑而非步骤指令构建程序。以下
最近我们组打算重构tightvnc源码,而我准备先当马前卒,把多线程换成单线程,对抓屏、分析、发送改成单线程,去掉不怎么需要的模块,预计工作会比较繁琐。 当然,以上是题外话。来公司一年后差不多零散的新学了五门语言,而比较特别的便是haskell了。之前快毕业的时候在学校看了一点函数式编程的资料,也看了haskel,但很快由于松散搁置了,因为像大多数程序猿一
转载
2024-01-13 17:28:43
47阅读
关于Python优化,除了使用PyPy(在代码零更改的情况下实现了令人印象深刻的加速)之外,您还可以使用PyPy的翻译工具链来编译兼容RPython的版本,或者使用Cython来构建扩展模块,这两者Cython模块比我的测试中的C版本要快,而Cython模块的速度几乎是后者的两倍。作为参考,我还包括C和PyPy基准测试结果:C(与编译gcc -O3 -lm)
% time ./euler12-c
转载
2023-07-06 14:38:10
160阅读
首先,必须声明的是,下面所写的内容,只是我个人的一些体验和感悟,受限于个人的水平,肯定会有所纰漏甚至是误导。 2天前,我在Why learning Haskell/Python makes you a worse programmer链接了一幅Language Fans的搞笑图片,如上。那时,并没有细想,只是觉得单纯的好玩
转载
2023-10-08 00:37:09
98阅读
最近两周被两个bug折磨的快要去死了……
第一个老师帮我指对了方向,虽然当时我觉得我的改动应该没有什么影响,但真的fix了。这个说明我对Haskell的理解还是不够透彻,语言内部的一些东西都还是不很了解。
第二个今天终于解决了,我检查了不下10遍可能出现问题的地方,在纸上、Exel里面DryRun了很多遍example3&complex3,大把大把的时间花在
原创
2011-08-13 21:51:45
622阅读
我有以下玩具程序循环移动一个向量并将其添加到自己(在mod下)。它为不同的移位和大量的迭代(与向量的大小相比)。节目作品,但它的狗慢。我还在学习哈斯克尔,所以我的问题是:我做错了什么?import Data.List (foldl')
import qualified Data.Sequence as Seq
import Data.Sequence (index, zipWith, Seq, (
转载
2023-07-03 22:19:00
46阅读
一晃间接触Haskell已经快两年了,完全的沦陷于这种“不实用”的语言。
最初听说haskell是同学很鄙视的说我们学校之所以逼着学生入门就学Haskell是因为John在这里。我才知道原来有一种语言叫haskell,原来有种编程范式叫函数式语言,原来imperative&OO以外的世界有这么大。于是一时好奇去上了FP课程,继而AFP,继而学了很多类型理论和计算模
原创
2011-08-16 04:00:01
804阅读
1评论
转载
2014-06-02 16:42:00
121阅读
2评论
Haskell也是使用缩进来表示一个表达式或者块延伸的范围的,这点与Python类似。Haskell的缩进规则简单总结起来只用下面三条: 1. 源文件中第一个顶级的定义或者声明的缩进,定义了该文件中所有顶级定义或者声明的缩进; 2. 空白行(只有注释的行也认为是空白行)和比前面某一行更加向右的缩进都...
转载
2014-06-01 12:50:00
496阅读
2评论
Haskell functions can take functions as parameters and return functions as return values. A function that does either of those is called a higher orde...
转载
2014-06-02 16:29:00
135阅读
2评论
Haskell Stack is a popular build tool for Haskell projects, providing a consistent and reproducible way to manage dependencies and build projects across different environments. In this article, we wil
原创
2024-04-16 10:45:10
92阅读
/*******************************************************************************/
http://eclipsefp.github.com/
Install: http://eclipsefp.github.com/install.html
http://www.haskell.org/haskellwiki
转载
2011-10-20 13:59:00
105阅读
2评论
一类 1 自定义类型 data关键字用来定义自己的数据类型 (类型必须大写) data Rank=Ten | jack |queen |king |ace 2 多态 (1)backwards::[a]->[a] backwards []=[] backwards (h:t)=backwards ...
转载
2012-12-05 15:25:00
79阅读
2评论
红黑树是众多平衡二叉搜索树数据结构中比较复杂的一种,而红黑树的删除操作更是出了名的难写。尽管实现复杂,在实际工程中红黑树却有着广泛应用(STL map, Java TreeMap, Linux Kernel),很多教科书(CLRS)中也有所介绍。网上大多数红黑树实现大多很冗长,或者缺少删除操作的实现。本文将用函数时编程语言Haskell,42行代码实现红黑树的插入与删除。阅读本文不需
转载
2023-10-20 21:48:34
54阅读
doubleMe x = x + xdoubleUs x y = doubleMe x + doubleMe ydoubleSmallNumber x = if x>100 then x else x * 2 doubleSmallNumber' x =... Read More
转载
2015-05-12 18:22:00
117阅读
2评论
Algebraic Data Types 入门在前面的章节中,我们谈了一些 Haskell 内置的类型和 Typeclass。而在本章中,我们将学习构造类型和 Typeclass 的方法。我们已经见识过许多类型,如Bool、Int、Char、Maybe等等,不过在 Haskell 中该如何构造自己的...
转载
2014-06-27 11:45:00
63阅读
2评论
haskell是一门通用函数式语言,几乎可以进行任何种类的开发,包括命令行,GUI,数据库,Web.源代码可以跨平台: Linux,Mac, Windows, FreeBSD 等.haskell特点:函数式变成风格为主,命令式风格为辅,具有严格且方便易用
转载
2014-03-10 13:20:00
478阅读
2评论
一.引用引用模块的语法格式为:--把模块中所有函数加入全局命名空间import<module>--部分引用import<module>(fn1,fn2)--引入数据类型及其值构造器import<module>(Datatype(constructor,constructor))--引入所有值构造器import<module>(Datatype(..)
原创
2021-01-14 20:15:44
260阅读
一.内置类型几种常见的类型如下:Int:有界整数,32位机器上的界限是[-2147483648,2147483647]Integer:无界整数,内置的大数类型,效率不如Int高Float:单精度浮点数,6位小数Double:双精度浮点数,15位小数Bool:布尔值,值为True/FalseChar:字符Tuple:元组本身也是类型,只有()一个值内置的无界整数让大数运算变得非常方便,例如求100的
原创
2021-01-14 20:23:33
347阅读