F# 可以把几个函数组合成新函数

C#能做的,F#基本都能做,但F#能做的,C#未必能做。

F#中的函数可以把几个函数组合起来使用。下面的例子是把由 function1 和 function2 这两个函数通过运算符“>>”(或“<<”)组合而成funuoction3,然后可以拿function3使用。

let function1 x = x + 1

let function2 x = x * 2

let function3 = function1 >> function2

let result5 = function3 100

运算结果是 202。

再看下面的例子:

let addOne x = x + 1
let timesTwo x = 2 * x
 
let Compose1 = addOne << timesTwo
let Compose2 = addOne >> timesTwo
 
// 结果是 5
let result1 = Compose1 2
 
//结果是 6
let result2 = Compose2 2
时间: 2024-12-29 12:53:01

F# 可以把几个函数组合成新函数的相关文章

ADO SQL属性扩展————多表组合成新的更完整的表

create database guoji--建立数据库 go use guoji go create table xinxi--建立表一 ( name varchar(20), minzu varchar(20) ) insert into xinxi values('lisi','101'); insert into xinxi values('wangwu','102'); insert into xinxi values('zhaoliu','103'); select * from x

JS函数式编程【译】4.2 函数组合

?? Functional Programming in Javascript 主目录第四章 在Javascript中实现函数式编程的技术 函数组合 终于,我们到了函数组合. 在函数式编程中,我们希望一切都是函数,尤其希望是一元函数,如果可能的话.如果可以把所有的函数转换为一元函数, 将发生神奇的事情. 一元函数是只接受单个输入的函数.函数如果有多个输入就是多元的,不过我们一般把接受两个输入的叫二元函数, 把接受三个输入的叫三元函数. 有的函数接受的输入的数量并不确定,我们称它为可变的. 操作函

6.5.2 C# 中的函数组合

C# 中的函数组合是可能的,但使用非常有限,这是部分是由于在 C# 中散应用不能很容易使用,但更重要的是,因为大多数操作是用成员来写的,而不是函数.但我们至少可以用 C# 演示同样的想法,清单 6.18 显示了 Compose 方法的实现,以及使用的示例. 清单 6.18实现并使用 Compose 方法 (C#) static Func<A, C> Compose<A, B,C>(this Func<A, B> f, Func<B, C> g) { retu

Scalaz(14)- Monad:函数组合-Kleisli to Reader

Monad Reader就是一种函数的组合.在scalaz里函数(function)本身就是Monad,自然也就是Functor和applicative.我们可以用Monadic方法进行函数组合: 1 import scalaz._ 2 import Scalaz._ 3 object decompose { 4 //两个测试函数 5 val f = (_: Int) + 3 //> f : Int => Int = <function1> 6 val g = (_: Int) *

【51CTO/BBS】请教: SQL里有没有字符串组合Join的函数??

[51CTO/BBS]请教: SQL里有没有字符串组合Join的函数?? 原帖地址:http://bbs.51cto.com/thread-1133863-1.html 问题描述: VB 中有两个非常好用的字符串处理函数: Split(字符串,分隔符)作用:将[字符串]以[分隔符]作为边界,分解成数组. 返回:一个字符串数组. Join(字符数组,分隔符)作用:将[字符数组]中的元素,以[分隔符]作为边界,连接成一个字符串.返回:一个字符串. 请教老师们,SQL里是否有类似的函数? 解决方案:

6.5.1 函数组合

处理函数最重要的操作,就是组合.先看一个示例是非常有用的,这个示例用元组保存(城市的)名字和人口.在清单 6.16 中,我们创建一个函数,根据人口的规模,确定是城市.镇,还是村:同时用保存在列表中的几个地方测试确定状态. 清单 6.16 处理城市信息 (F# Interactive) > let places = [("Grantchester", 552);    <-创建测试数据列表 ("Cambridge", 117900); ("Pra

[Java 8] (10) 使用Lambda完成函数组合,Map-Reduce以及并行化

Java 8中同时存在面向对象编程(OOP)和函数式编程(FP, Functional Programming)这两种编程范式.实际上,这两种范式并不矛盾,只是着重点不同.在OOP中,着重于通过丰富的类型系统对需要解决的问题进行建模:而FP中则着重于通过高阶函数和Lambda表达式来完成计算.所以我们完全可以将这两者融合在一起,对问题提出更加优雅的解决方案. 在这篇文章中,会介绍如何通过函数组合(Function Composition)来将若干个函数单元组合成一个Map-Reduce模式的应用

函数组合的 N 种模式

随着以函数即服务(Function as a Service)为代表的无服务器计算(Serverless)的广泛使用,很多用户遇到了涉及多个函数的场景,需要组合多个函数来共同完成一个业务目标,这正是微服务"分而治之,合而用之"的精髓所在.本文以阿里云函数计算为例,试图全面介绍函数组合的常见模式和使用场景,希望有助于选择合适的解决方案. 虽然本文主要介绍的是函数组合,但是基本思想也可用于服务组合. 函数同步调用函数 在这种模式里,函数直接调用 InvokeFunction 同步 API

index+small+row+if经典函数组合应用

EXCEL中index+small+row+if 函数组合可以查出满足同一条件的所有记录,通过实例讲解: 本文为原创,转载需标明出处,谢谢! 例:查找出一年级的所有班级及人数: A B C D 1 年级 班级 人数 2 一年级 二班 36 3 一年级 三班 38 4 二年级 一班 39 5 一年级 一班 41 6 二年级 三班 38 7 三年级 一班 42 8 三年级 三班 37 9 一年级 四班 40 第一步:IF($B$2:$B$9="一年级",ROW($2:$9),10^10):