Haskell
文章平均质量分 83
蓝色歌谣
这个作者很懒,什么都没留下…
展开
-
Real World Haskell - Preface
<br /> <br /> <br /> <br /> <br />Preface<br /> <br /> <br />Have We Got a Deal for You!<br /> <br />Haskell 是一门很有深度的语言;我们认为学习Haskell 是一种极有价值的体验。我们主要关注三个方面。第一是新颖:我们鼓励(invite)你从一种不同的而且有价值的观点思考编程。第二是性能:我们将向你展示如何编写简短,快速并且安全的软件。最后,我们给你准备了许多乐趣:应用漂亮的编程技术去解决真实问题。原创 2011-01-26 23:25:00 · 454 阅读 · 0 评论 -
Real World Haskell - Chapter 10. Code Case Study: Parsing a Binary Data Format
<br /> <br /> <br /> <br /> <br />Chapter 10. Code Case Study: Parsing a Binary Data Format<br /> <br />Grayscale Files<br /> <br />(==>) 函数会创建一个闭包,如“(+5)”就是一个闭包。<br /> <br />functor 可以使得我们的代码更tidy,更expressive 。<br />functor 可以避免去复制代码。<br />functor 有助于避免代码原创 2011-03-25 23:11:00 · 446 阅读 · 0 评论 -
Real World Haskell - Chapter 5. Writing a Library: Working with JSON
<br /> <br /> <br /> <br /> <br />Chapter 5. Writing a Library: Working with JSON Data<br /> <br />A Whirlwind Tour of JSON<br /> <br />本章将开发一个小的,但完整的Haskell 库。这个库以JSON 格式(JavaScript Object Notation)来操作和序列化数据。<br /> <br />Representing JSON Data in Haskell<原创 2011-02-21 23:16:00 · 610 阅读 · 0 评论 -
Real World Haskell - Chapter 6. Using Typeclasses
<br /> <br /> <br /> <br /> <br />Chapter 6. Using Typeclasses<br /> <br />用class 声明Typeclass 就是声明一组函数。<br /> <br />The Need for Typeclasses<br /> <br />Color 相等测试(后面有改进版)<br /> <br />data Color = Red | Green | Blue<br /> <br />colorEq :: Color -> Color ->原创 2011-02-23 17:40:00 · 587 阅读 · 1 评论 -
Real World Haskell - Chapter 9. I/O Case Study: A Library for Searching the Filesystem
<br /> <br /> <br /> <br /> <br />Chapter 9. I/O Case Study: A Library for Searching the Filesystem<br /> <br />The find Command<br /> <br />Haskell 中参数位置非常重要,如果把参数放在了错误的位置上就会失去partial application 的gives 了。<br /> <br />给定一个目录的列表,find 命令递归的搜索每一个目录,并打印所有匹配的文原创 2011-03-14 00:56:00 · 402 阅读 · 0 评论 -
Real World Haskell - Chapter 8. Efficient File Processing, Regular Expressions, and Filename
<br /> <br /> <br /> <br />Chapter 8. Efficient File Processing, Regular Expressions, and Filename<br /> Matching<br /> <br />Efficient File Processing<br /> <br />用String 来进行I/O 操作性能很糟糕<br /> <br />-- in.txt<br />{-<br />10<br />11<br />12<br />-}<br />m原创 2011-03-07 22:55:00 · 567 阅读 · 0 评论 -
Real World Haskell - Chapter 4. Functional Programming
<br /> <br /> <br /> <br /> <br />Chapter 4. Functional Programming<br /> <br />A Simple Command-Line Framework<br /> <br /> <br />Haskell 中所有函数都仅接受一个参数。如果一个函数需要多个参数,则每给它一个参数,它就返回一个partial 函数。<br /> <br />组合使用库函数,如map,take,filter 来代替尾部递归和匿名函数,可以使得代码更可读,加快编原创 2011-02-18 12:20:00 · 522 阅读 · 0 评论 -
Real World Haskell - Chapter 7. I/O
<br /><br /><br /><br /> <br />Chapter 7. I/O<br /> <br />使用<- 从IO 获取输入,使用let 从pure code 获取输入。<br /> <br />pure code 就是相同的输入返回相同的输出,并且没有side effects 的代码。在Haskell 中只有I/O actions 不遵循这一规则。<br /> <br /> <br />严格分隔pure code 和非pure cod 有利于编译器自动优化和并行化。<br /> <br原创 2011-03-01 12:43:00 · 1152 阅读 · 1 评论 -
Real World Haskell - Chapter 3. Defining Types, Streamlining Functions
<br /> <br /> <br /> <br /> <br />Chapter 3. Defining Types, Streamlining Functions<br /> <br /> <br />使用“data”自定义新类型<br /> <br />-- book.hs<br />data BookInfo = Book Int String [String]<br /> deriving (Show)<br /> <br />mybook = Book 97801350原创 2011-02-04 16:37:00 · 454 阅读 · 0 评论 -
Real World Haskell - Chapter 2. Types and Functions
<br /> <br /> <br /> <br /> <br />Chapter 2. Types and Functions<br /> <br /> <br />Why Care About Types?<br /> <br />略<br /> <br />Haskell’s Type System<br /> <br />Haskell 的类型是静态,强类型,能够自动推断。<br /> <br />Static Types<br /> <br />静态类型的意思是编译器在编译时知道所有值和表达式的类原创 2011-01-28 18:17:00 · 362 阅读 · 0 评论 -
Real World Haskell - Chapter 1. Getting Started
<br /> <br /> <br /> <br /> <br />Chapter 1. Getting Started<br /> <br /> <br />GHC 有三个主要components:<br /> <br />ghc<br />产生native code 的编译器<br /> <br />ghci<br /> <br />交互式解释器及调试器<br /> <br />runghc<br />将Haskell 程序作为脚本运行而无需编译<br /> <br /> <br />Getting S原创 2011-01-26 23:30:00 · 346 阅读 · 0 评论 -
Real World Haskell - Chapter 11. Testing and Quality Assurance
<br /> <br /> <br /> <br /> <br />Testing Case Study: Specifying a Pretty Printer<br /> <br />“(<>)”是连接两个Doc 的函数,加上fold 就变成连接多个Doc 的函数<br /> <br />Generating Test Data<br /> <br />data Doc = Empty<br /> | Char Char<br /> | Text String<br />原创 2011-03-29 17:22:00 · 320 阅读 · 0 评论