Haskell示例

i :: Int
i = 5

--add, sub :: Int -> Int -> Int
add, sub :: (Num a) => a -> a -> a
add a b = a + b
sub a b = a - b

f :: (Num a) => a -> a
f x = 4 * x + 1

--出错
--area :: (Num x) => Floating -> x -> x
area :: Floating a => a -> a
area r = pi * (r ^ 2)

fun :: (Num a) => (a, a) -> a
fun (x,y) = 4 * x + 5 * y + 1

fun‘ :: (Num a) => a -> a-> a
fun‘ x y = 4 * x + 5 * y + 1

--Lambda表达式
--fun‘‘ = \x -> \y -> 4 * x + 5 * y + 1
fun‘‘ :: Num a => a -> a ->a
fun‘‘ = \x y -> 4 * x + 5*y + 1

plus :: Num a => a -> a -> a
plus = (+)

--参数绑定
--area_tri :: Float -> Float -> Float -> Float
area_tri ::  Floating a => a -> a -> a -> a
-- let ... in
area_tri a b c = let p = (a+b+c)/2 in  sqrt (p * (p-a) * (p-b) * (p-c))

area_tri‘ :: Double -> Double -> Double -> Double
-- where
area_tri‘ a b c =
    sqrt (p * (p-a) * (p-b) * (p-c))
    where
    p = ((a + b + c) / 2.0)

--条件表达式
isTwo :: Int -> Bool
isTwo x = if x == 2 then True else False

isTwo‘ :: Int -> Bool
isTwo‘ = (==2)
时间: 2024-08-24 16:40:06

Haskell示例的相关文章

经过实际验证的C#调用Haskell的方法

[系统环境] Windows Server 2008 R2,Haskell Platform 2013.2.0.0,ghc 7.6.3,cabal 1.16.0 [操作步骤] 1. 安装Windows版Haskell Platform(不支持Windows Server 2012),Haskell Platform集成了cabal(相当于.NET中的msbuild+nuget), ghc(Glasgow Haskell Compiler,Haskell编译器) 2. 编写Haskell代码保存于

Ansible系列(五):playbook应用和roles自动化批量安装示例

html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary { display: block } audio,canvas,progress,video { display: inline-block; vertical-align: baseline } audio:not([co

RPC学习----Thrift快速入门和Java简单示例

一.什么是RPC? RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据.在OSI网络通信模型中,RPC跨越了传输层和应用层.RPC使得开发包括网络分布式多程序在内的应用程序更加容易. 二.什么是Thrift? thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和

Java8 lambda表达式10个示例

本文由 ImportNew Java 8 刚于几周前发布,日期是2014年3月18日,这次开创性的发布在Java社区引发了不少讨论,并让大家感到激动.特性之一便是随同发布的lambda表达式,它将允许我们将行为传到函数里.在Java 8之前,如果想将行为传入函数,仅有的选择就是匿名类,需要6行代码.而定义行为最重要的那行代码,却混在中间不够突出.Lambda表达式取代了匿名类,取消了模板,允许用函数式风格编写代码.这样有时可读性更好,表达更清晰.在Java生态系统中,函数式表达与对面向对象的全面

困扰多日的C#调用Haskell问题竟然是Windows的一个坑

最近一直被C#调用Haskell时的"尝试读取或写入受保护的内存"问题所困扰(详见C#调用haskell遭遇Attempted to read or write protected memory,C#调用haskell时的"尝试读取或写入受保护的内存"问题),而且困在其中,越陷超深,无法自拔,差点弃用C#解决我们面临的问题. 问题是这样的,只要在Haskell代码中对字符串进行操作,在C#调用时就会引发异常: An unhandled exception of ty

C/C++ 开源库及示例代码

C/C++ 开源库及示例代码 Table of Contents 说明 1 综合性的库 2 数据结构 & 算法 2.1 容器 2.1.1 标准容器 2.1.2 Lockfree 的容器 2.1.3 环形缓冲 2.1.4 多维数组 2.1.5 图 2.2 对容器的操作 2.3 字符串处理 2.3.1 字符集 2.3.2 字符串格式化 2.3.3 正则表达式 2.3.4 (其它) 2.4 内存相关 2.4.1 智能指针 2.4.2 内存池 2.5 时间 & 日期 2.6 编码 & 解码

Java 8 Lambda表达式10个示例【存】

PS:不能完全参考文章的代码,请参考这个文件http://files.cnblogs.com/files/AIThink/Test01.zip 在Java 8之前,如果想将行为传入函数,仅有的选择就是匿名类,需要6行代码.而定义行为最重要的那行代码,却混在中间不够突出.Lambda表达式取代了匿名类,取消了模板,允许用函数式风格编写代码.这样有时可读性更好,表达更清晰.在Java生态系统中,函数式表达与对面向对象的全面支持是个激动人心的进步.将进一步促进并行第三方库的发展,充分利用多核CPU.尽

Java8 lambda表达式10个示例<转>

例1.用lambda表达式实现Runnable 我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例.看一下Java 8之前的runnable实现方法,需要4行代码,而使用lambda表达式只需要一行代码.我们在这里做了什么呢?那就是用() -> {}代码块替代了整个匿名类. // Java 8之前: new Thread(new Runnable() { @Override public void run() { System.o

Java8 lambda 表达式示例

1.1 用lambda表达式实现Runnable 使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例.看一下Java 8之前的runnable实现方法,需要4行代码,而使用lambda表达式只需要一行代码.我们在这里做了什么呢?那就是用() -> {}代码块替代了整个匿名类. // Java 8之前: new Thread(new Runnable() { @Override public void run() { System.out.println("Bef