首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
haskell专题
Haskell --- 纯函数编程语言
Haskell是一种纯函数式编程语言(Purely Functional Programming Language)。 在函数式编程语言中,变量一旦赋值,就不能改变了,你已经声明了a式5,就不能改遍主意。 在纯函数式编程语言中,函数没有任何的副作用。函数式编程语言中的函数能做的唯一一件事情,就是求值并且返回结果。一开始可能觉得这样子会受到限制,然而好处也正源于此;若以相同的参数调用同以函数两
阅读更多...
神奇的Haskell
Haskell 定义函数的时候可以指定一个类型,也可以只指定某一类类型(泛型编程) 定义普通函数 plus2 :: Int -> Int plus2> 只能用Int型调用 定义泛型的函数 plus2 :: (Num a) a -> a plus2> 这下子不只是Int型可以调用,还有float之类的只要是数字就都可以调用了 Haskell 函数调用过程,神的一B 在实际上,
阅读更多...
深入探索如何在 MoonBit 中实现 Haskell 求值语义(三)
本期文章为在MoonBit中实现惰性求值的第三篇。在上一篇中,我们了解了let表达式的编译方法以及如何实现基本的算术比较操作。这一篇文章中,我们将实现一种基于上下文的优化方法,并添加对数据结构的支持。 追踪上下文 回顾一下我们之前实现primitive的方法: let compiledPrimitives : List[(String, Int, List[Instruction])] =
阅读更多...
Haskell 开发的实际产品
以下是一些使用 Haskell 开发实际产品的例子和相关信息: Pandoc: Pandoc 是一个用 Haskell 编写的文档格式转换器,能够将多种格式的文本文件进行转换,如 Markdown、HTML、LaTeX 等。由于其支持的格式广泛且转换质量高,它已成为处理文本文件的优选工具。Pandoc 提供了强大的 API,并允许开发者在自己的 Haskell 程序中调用其功能,从而进行文档处
阅读更多...
Haskell 学习
truncate pi -- 表示截断, 此处结果为 3 haskell中的touple是可变的,而python中是不可变的 lines函数: lines :: String -> [String] 以‘\n'为分隔符,建立列表 interact 函数: interact :: (String -> String) -> IO ()
阅读更多...
haskell(25)
lines和unlines将带有换行符的串分解成多行,每行一个元素,unlines是相反的操作,将多个元素合成一个串。 *Main Data.List> lines "hello\nworld" ["hello","world"] *Main Data.List> unlines ["hello","world"] "hello\nworld\n" *Main Data.List> words
阅读更多...
haskell(24)
elemIndex和elemIndices在列表中查找元素,elemIndex返回找到的第一个元素的位置,而elemIndices返回找到的所有元素的位置。 Prelude Data.List> 66 `elemIndex` [1,23,66,2,6,90] Just 2 Prelude Data.List> 23 `elemIndex` [1,23,66,23,6,90] Just 1 Pr
阅读更多...
haskell(23)
group将邻接相同的元素组合成列表的一个元素 Prelude Data.List> group [12,12,12,32,12,12,11,12,23] [[12,12,12],[32],[12,12],[11],[12],[23]] sort可对列表元素进行排序 Prelude> :m + Data.List Prelude Data.List> sort [23,55,32,11] [11
阅读更多...
haskell的世界观
先讲一个故事吧,薛定谔的猫(Schrodinger’s cat)的故事。这是关于量子理论的一个理想实验。 这个猫十分可怜,她(假设这是一只雌性的猫,以引起更多怜悯)被封在一个密室里,密室里有食物有毒药。毒药瓶上有一个锤子,锤子由一个电子开关控制,电子开关由放射性原子控制。如果原子核衰变,则放出阿尔法粒子,触动电子开关,锤子落下,砸碎毒药瓶,释放出里面的氰化物气体,雌猫必死无疑。这个残忍的装置由薛
阅读更多...
haskell使用技巧
.原来GHCI是可以编程的, 真方便 $cat ~/.ghci :def hoogle \str -> return $ ":! hoogle --count=15 \"" ++ str ++ "\"" :cd /media/G/www/qachina/db/doc/money :load Money.hs 这里定义了函数hoogle,
阅读更多...
haskell并发编程
线程相关 forkIO :: IO a -> IO ThreadId forkIO是Haskell内建的函数,它的参数是一个IO动作,forkIO所做的事情就是创建一个并发的Haskell线程 来执行这个IO动作。一旦这个新线程建立,Haskell的运行时系统便会将它与其他Haskell线程并行执行。 Haskell里面由forkIO产生出来的线程是非常轻量
阅读更多...
Baeldung Java 周评 | 第二弹(关键词:jOOQ+Spring、JVM、基准 / Benchmark 分析、GC 日志、Java 套接字、重构工作流、抽象分支、HaskellJava)
开篇词 在 2014 年一月份的第二周,尤金的第二个 Java 周评,诞生了! 本读物专栏 《Baeldung Java 周评(官方授权)》 Spring 相关 jOOQ 与 Spring 相结合:代码生成 主要是关于代码生成的话题,这是该系列的第二篇文章。 Java 相关 热点 JVM 是个庞氏骗局 JVM 和垃圾回收的好读物。基准分析的艺术 基于先前一个简单的 Jav
阅读更多...
《Two Dozen Short Lessons in Haskell》(二十一)在形式参数中使用模式匹配
《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。在这个站点有PDF文件。几年前刚开始学习
阅读更多...
《Two Dozen Short Lessons in Haskell》(十九)文件输入与输出
《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。在这个站点有PDF文件。几年前刚
阅读更多...
《Two Dozen Short Lessons in Haskell》学习(十七) - Modules as Libraries
《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。在这个站点有PDF文件。几年前刚开始学习
阅读更多...
《Two Dozen Short Lessons in Haskell》学习(十五)- Encapsulation — modules
《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。在这个站点有PDF文件。几年前刚开始学习
阅读更多...
用Haskell写的卡普雷尔卡kaprekar黑洞小程序
无意中在博客园里发现这个卡普雷尔卡黑洞题目,正好适合用haskell练手,就试着用Haskell实现了。 原题描述: 把一个四位数的四个数字由小至大排列,组成一个新数,又由大至小排列排列组成一个新数,这两个数相减,之后重复这个步骤,只要四位数的四个数字不重复,数字最终便会变成 6174。 例如: 3109,9171 (=9310 - 0139),8532 (=9711 - 1179),6174
阅读更多...
《Two Dozen Short Lessons in Haskell》学习(十四)- Truncating Sequences and Lazy Evaluation
《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。在这个站点有PDF文件。几年前刚开始学习
阅读更多...
一个关于Haskell不错的总结
http://rufi.ycool.com/post.58940.html
阅读更多...
《Two Dozen Short Lessons in Haskell》学习(四)
《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。在这个站点有PDF文件。几年前刚开始学习
阅读更多...
《Two Dozen Short Lessons in Haskell》学习(六)
《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。在这个站点有PDF文件。几年前刚开始学习
阅读更多...
《Two Dozen Short Lessons in Haskell》学习(十二) 数值相关的类
《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。在这个站点有PDF文件。几年前刚开始学习
阅读更多...
《Two Dozen Short Lessons in Haskell》学习(十五)- Encapsulation — modules
《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。在这个站点有PDF文件。几年前刚开始学习
阅读更多...
《Two Dozen Short Lessons in Haskell》(十九)文件输入与输出
《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。在这个站点有PDF文件。几年前刚
阅读更多...
Haskell 安装 Cairo
背景 Haskell 项目需要使用到柱状图,折线图等(demo 代码) 步骤(默认已安装 stack, cabal, ghcup) nameversionstack2.11.1cabal3.8.1.0ghcup0.1.20.0 在 package.yaml 中添加所需依赖 Chart 和 Chart-cairo name: aversion:
阅读更多...
[Real World Haskell翻译]第23章 GUI编程使用gtk2hs
第23章 GUI编程使用gtk2hs在本书中,我们一直在开发简单的基于文本的工具。虽然这些往往是理想的接口,但有时图形用户界面(GUI)是必需的。有几个Haskell的GUI工具包是可用的。在本章中,我们将着眼于其中一个,gtk2hs。%多个替代选择存在。除了gtk2hs,wxHaskell也是一个著名的跨平台GUI工具包。安装gtk2hs在我们和gtk2hs工作之前,你需要安装它。在大多数L
阅读更多...