本博客所有内容是原创,未经书面许可,严禁任何形式的转载。
http://blog.csdn.net/u010255642
2)应用
A.求3元素元组的第一、第二、第三个值
myfirst ::(a,b,c)->a
myfst (a,_,_)->a
mycnt (_,b,_)->b
mylst (_,_,c)->c
B、 求2维和3维空间的欧氏距离
2维的欧氏距离公式是:
3维的欧氏距离公式是:
函数定义如下:
euclidean_distance2 ::Floating a=>(a,a)->(a,a)->a
euclidean_distance2 (x1,y1) (x2,y2)= sqrt ((x1-y1)^2+(x2-y2)^2)
euclidean_distance3 ::Floating a=>(a,a,a)->(a,a,a)->a
euclidean_distance3 (x1,y1,z1) (x2,y2,z2)= sqrt ((x1-y1)^2+(x2-y2)^2+(z2-z2)^2)
我们加载一下这几个函数的程序,运行一下
Prelude> :r
[1 of 1] Compiling Main ( H:\my_docs\mytest.hs, interpreted )
Ok, modules loaded: Main.
*Main> euclidean_distance3 (12.1,33,22.1) (33.2,11.5,11)
30.128060010561583
*Main> euclidean_distance2 (12.1,33) (33.2,11.5)
30.128060010561583
*Main> myfst (12,33,88)
12
*Main> mycnt (12,33,88)
33
*Main> mylst (12,33,88)
88