①循环?NO!请递归思考问题!手艹一个求列表中最大值代码,C语言中习惯性for扫一下比较出最大值。但是可以用递归!maximum'::(Ord a)=>[a]->amaximum' []=error "empty!"maximum' [x]=xmaximum' (x:xs) = max x (max...
分类:
其他好文 时间:
2015-02-08 00:25:39
阅读次数:
249
①如何写一个求阶层函数?fac0=1facn=n*fac(n-1)函数自适应匹配参数,可以把特判情况写在前面,注意按顺序匹配的,n这种万能情况写在最前面就完蛋了。同时你也注意到,函数只能一行写完,不能智能识别作用域啊!!②灵活的使用你的函数参数!看这个求三元组第三个值的函数,占位符_的神奇使用。th...
分类:
其他好文 时间:
2015-02-06 00:39:08
阅读次数:
180
①一切都是函数,包括常量、表达式,格式:名字参数1参数2..=函数内容②if语句(else绝对不可以省略)F=if(..)thenxelsey③没有数组,只有列表[1,2,3,4,5],[‘h’,’e’]列表有好多运算符:“++”:同类型拼接“:“:前端插入,1:2:3:4:5:[]等效于[1,2,...
分类:
其他好文 时间:
2015-02-04 23:10:54
阅读次数:
235
12.5.1 声明计算类型
在这个示例中,计算的类型(在 Haskell 术语中的单子类型)称为 ValueWrapper,它只是存储泛型类型参数T 的值,并不会为类型增加任何其他功能。这就是说,计算只处理标准值,但是,我们能够用 C# 中的查询表达式, F# 中的计算表达式,写代码(来增加功能)。
清单 12.17 显示了在 C# 和 F# 中的类型声明。在 C# 中,我们创建简单的类...
分类:
其他好文 时间:
2015-01-29 17:41:52
阅读次数:
196
12.4 可选工作流(alternativeworkflows)
计算表达式(Computation expressions)是一种 F# 功能,部分灵感是来自Haskell 的单子(monads)。单子有个不好的名声,对于brain-bustingly 有困难的人来说,但是,也不用担心。我们将实现一组重要的方法,可以在 C# 中很好地处理 Option 值,以及在 F# 中的类似做法,如...
分类:
其他好文 时间:
2015-01-29 10:30:52
阅读次数:
168
趁着自己重装Linux 虚拟机的机会,把安装 haskell 的过程记录一下,顺便帮那些还犹豫徘徊在haskell门外的读者入门。基本概念:Haskell : 是一门通用函数式语言,差点儿能够进行不论什么种类的开发,包含命令行,GUI,数据库,Web.源码能够跨平台: Linux,Mac, Wind...
分类:
其他好文 时间:
2015-01-22 00:01:15
阅读次数:
257
11.4 实用延迟值
如果我们有一系列计算,可能要花很长时间,并且只在需要时才计算这个(些)值,这时,延迟值就很有用了。在这种情况下,可以得益于缓存,我们在上一节已经用 C# 实现过,把延迟值作为缓存,在需要时才填充。
延迟值的另一个重要用途,是表达一些概念时,很难以其他方式编程。我们将先Haskell 提供的几个例子,讨论有关延迟值的实际使用;Haskell 在每一处都使用延迟计算,这...
分类:
其他好文 时间:
2015-01-15 12:57:19
阅读次数:
169
1.概述thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生产引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Sma...
分类:
系统相关 时间:
2015-01-13 12:14:45
阅读次数:
151
11.3.1.2 Haskell 的延迟计算策略
在延迟计算策略(lazy evaluation strategy)中,函数的参数值,在函数调用时不会计算,直到后来用到这个值时才计算。我们回到前面的例子:
TestAndCalculate(Calculate(10));
在这里,Haskell 直接跳转到TestAndCalculate 函数主体。Haskell 会记住参...
分类:
其他好文 时间:
2015-01-12 11:36:32
阅读次数:
160
11.3.1 不同的计算策略
Haskell 是一种纯函数式语言,有一个重要的方面,即,不允许任何副作用。有专门的技术在屏幕上输出,或处理文件系统,但对于程序员来说,它是以一种看起来不像有副作用的方式来实现。在这样的语言中,调整计算排序表达式的顺序是可能的;在Haskell 中,直到需要结果,才计算函数;这不会影响程序的结果,因为,函数没有副作用。
C# 和 F# 的函数都可能有副作用,...
分类:
其他好文 时间:
2015-01-11 16:16:53
阅读次数:
195