首页 > 其他分享 >无涯教程-Haskell - 函数组合

无涯教程-Haskell - 函数组合

时间:2023-12-21 22:02:04浏览次数:22  
标签:even 教程 函数 eveno 无涯 Haskell noto composition 输入

功能组合是将一个功能的输出用作另一个功能的输入的过程,如果我们学习组成背后的数学会更好,在数学中,组成由 f {g(x)} 表示,其中 g()是一个函数,其输出用作输入另一个功能,即 f()。

看下面的示例代码。在这里,我们使用函数组合来计算输入数字是偶数还是奇数。

eveno::Int -> Bool 
noto ::Bool -> String 

eveno x=if x `rem` 2 == 0 
   then True 
else False 
noto x=if x == True 
   then "This is an even Number" 
else "This is an ODD number" 

main=do 
   putStrLn "Example of Haskell Function composition" 
   print ((noto.eveno)(16))

在这里,在 main 函数中,我们同时调用两个函数 noto 和 eveno ,编译器将首先使用 16 作为参数调用函数" eveno()" ,之后,编译器将 eveno 方法的输出用作 noto()方法的输入。

其输出如下-

Example of Haskell Function composition                
"This is an even Number"

由于我们提供数字16作为输入(它是偶数),因此 eveno()函数将返回 true ,这将成为 noto的输入()函数并返回输出:"This is an even Number"。

参考链接

https://www.learnfk.com/haskell/haskell-function-composition.html

标签:even,教程,函数,eveno,无涯,Haskell,noto,composition,输入
From: https://blog.51cto.com/u_14033984/8926901

相关文章

  • 无涯教程-Haskell - 运算符
    在本章中,我们将了解Haskell中使用的不同运算符,在接下来的章节中,我们将学习更多有关不同运算符及其用法的信息。 +加法顾名思义,加法(+)运算符用于加法函数。main=doletvar1=2letvar2=3putStrLn"Theadditionofthetwonumbersis:"print(var1+var......
  • 无涯教程-Haskell - 类型类
    Haskell是一种函数语言,它是严格类型化的,这意味着编译器将在编译时知道整个应用程序中使用的数据类型。Int整数类型Int是代表Integer类型数据的类型类,2147483647到-2147483647范围内的每个整数都属于Int类型类。fType::Int->Int->IntfTypexy=x*x+y*ymain=print(fT......
  • 软件测试/测试开发|Ubuntu系统入门教程
    前言上文我们介绍了Ubuntu系统的安装,还没有介绍Ubuntu系统的使用,对于习惯了使用Windows系统的我们来说,Ubuntu和Windows还是有着比较大的区别的,本文就来介绍一下Ubuntu系统的入门使用。Windows和Linux文件系统区别我们都知道,Windows操作系统的文件管理是分盘的,我们有C盘,D盘......
  • 无涯教程-Haskell - 环境设置
    从其官方网页下载可用的Haskell设置-https://www.haskell.org/downloadsWindows环境设置要在Windows计算机上设置Haskell环境,请访问其官方网站https://www.haskell.org/platform/windows.html并根据您可定制的体系结构下载安装程序。检查系统的体系结构并下载相应的设置文件......
  • opencv图像处理机器学习真实项目教程(python实现)3图像处理基础
    3图像处理基础在本章中,我们将介绍图像处理中的各种操作,首先是基于平移的操作,如旋转和调整大小。读者将学习如何使用OpenCV旋转和调整图像大小,以及如何控制生成图像的大小和方向。本章接着介绍了图像的算术运算,如加法、减法和除法。本章继续以图像运算为主题,介绍图像的位运算,如......
  • 无涯教程-Go - 函数指针
    Go编程语言使您可以将指针传递给函数,只需将函数参数声明为指针类型。在下面的示例中,我们将两个指针传递给一个函数,并更改该函数内部的值,该值会反映在调用函数中-packagemainimport"fmt"funcmain(){/*局部变量定义*/varaint=100varbint=200fmt.P......
  • PostgreSQL从入门到精通教程 - 第39讲:数据库完全恢复
       PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。 第39讲:数据库完全恢复 PostgreSQL第39讲:12月23日(......
  • 无涯教程-Go - 多维数组函数
    Go编程语言允许多维数组,这是多维数组声明的一般形式-varvariable_name[SIZE1][SIZE2]...[SIZEN]variable_type如,以下声明创建了三维5、10、4个整数数组-varthreedim[5][10][4]int二维数组二维数组是多维数组的最简单形式,本质上,二维数组是一维数组的列表,要声明大小为[x......
  • 【教程】cocos2dx资源加密混淆方案详解
    ​ 【教程】cocos2dx资源加密混淆方案详解1,加密,采用blowfish或其他2,自定是32个字符的混淆code3,对文件做blowfish加密,入口文件加密前将混淆code按约定格式(自定义的文件头或文件尾部)写入到文件4,遍历资源目录,对每个文件做md5混淆,混淆原始串=“相对路径”+“文件名”+混......
  • 嵌入式教程_DSP教学实验箱操作:5-14 灰度图像二值化(LCD显示)
    一、实验目的学习灰度图像二值化的原理,掌握图像的读取方法,并实现在LCD上显示二值化前后的图像。二、实验原理图像二值化图像的二值化处理就是将图像上的点的灰度置为0或255,也就是将整个图像呈现出明显的黑白效果。即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可......