写点什么

从 F#中借用函数化 API

  • 2007-11-21
  • 本文字数:555 字

    阅读完需:约 2 分钟

通用语言规范(Common Language Specification,CLS)确保任何具有一致性的.NET 语言能访问被其他语言创建的函数库。这意味着命令式的语言,如 VB 和 C#,能调用主要为 F#创建的函数化函数库。实际上,许多都能直接地转换为 C#代码。

Dustin Campbell 通过演示一个能被大量简化的 C#表达式是如何地简单来说明这种方式。它以如下代码开始:

int[] a = new int[20];
for (int x = 0; x < a.Length; x++)
a[x] = x + 1;

如果写成 F#即是:

let a = Array.init 20 (fun x -> x + 1)

不使用特殊的代码技巧,F#代码可以表述为(以一种更声明化的方式),“创建一个有 20 个元素的数组,并使用这个函数初始化每个元素。”F#版本一个有趣的特性是数组的类型不需要声明。因为编译成能推断传递到函数的结果(fun x -> x + 1)将会是整数,“a”必须是一个整数数组。

对我来说,这代码是那样的优美。另外,这是声明式的而非命令式;它描述什么将被完成而不是明确地规定将如何完成。 当我看到如此简练的代码,我立刻开始试图想找到 F#中的那些方面,有助提高我日常工作中的 C#代码的书写效率。

Dustin 继续展示了一个 C#函数,允许使用这样的语法。

var a = ArrayEx.Create(20, x => x + 1);

需要提醒的是这样的技术在 VB 中同样可以工作。

查看英文原文: http://www.infoq.com/news/2007/11/Functional-CSharp

2007-11-21 07:50883
用户头像

发布了 254 篇内容, 共 57.9 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

龙蜥一站式质量协作平台T-One上线,助你轻松完成测试

OpenAnolis小助手

开源 测试 软件包 协作平台

一眼定位问题,函数计算发布日志关键词秒检索功能

阿里巴巴云原生

攻击面管理(ASM)技术详解和实现

风向标

网络安全 asm 安全419 零零信安

python Excel数据表格转为HTML网页数据表格,阿里快手拼多多等7家大厂Python面试真题

程序媛可鸥

Python 程序员 面试

条码WMS系统的架构

源字节1号

开源 前端开发 后端开发 WMS仓库管理

周末给女友讲了遍加密算法,没想到...

浅羽技术

算法 安全 加密算法

代码安全 | 什么是OWASP?OWASP十大漏洞解析

龙智—DevSecOps解决方案

漏洞 安全漏洞 漏洞防护 OWASP十大漏洞 静态代码安全

郑州等保测评公司有哪些?在哪里?

行云管家

网络安全 等保 等保测评 等保2.0 郑州

虚位以待 | 龙智有你更出彩

龙智—DevSecOps解决方案

求职 招聘

315权益日解读:“幸运”大牌和巨头,“挡枪”作坊和“小弟”?

易观分析

315晚会 央视315晚会 消费者权益

企业知识管理的步骤有哪些?

小炮

在线JSON转CSV格式文件工具

入门小站

工具

什么牌子的云堡垒机好用?效果好?

行云管家

云计算 堡垒机 云堡垒机

测试1

Journeyman

中文在线研讨会 | 如何突破Jenkins瓶颈,实现集中管理、灵活高效的CI/CD

龙智—DevSecOps解决方案

ci 持续集成 持续交付

在线SQL(Insert/Update)语句转JSON工具

入门小站

工具

Nebula Graph 在企查查的应用

NebulaGraph

数据库 开源 图数据库 知识图谱

全球案例 | Hubspot 通过 Confluence 打造透明的协作文化,使之成为让无数人骄傲的企业

龙智—DevSecOps解决方案

Jira Atlassian Atlassian Confluence 协同办公软件 协同软件

龙智荣誉 | 一封来自客户的感谢信

龙智—DevSecOps解决方案

感谢信

踏雪痕项目管理学习笔记

踏雪痕

项目管理 PMP Certification 3月程序媛福利 3月月更

从0到1:基于微信小程序的瑜伽馆预约平台的开发笔记

CC同学

用户文章 | 没有什么比现成的解决方案更香的了 - P4Python 玩家速看

龙智—DevSecOps解决方案

perforce P4 Perforce Helix Core P4Python

2022年最新iOS面试题(附答案)

iOSer

ios iOS面试 ios开发 iOS 知识体系 iOS涨薪

企业CICD规模化落地浅析

阿里云云效

云计算 阿里云 云原生 CI/CD 持续交付

【网络安全】记一次网站站点渗透

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

性能测试中Disruptor框架ExceptionHandler使用分享

FunTester

Disruptor 性能测试 接口测试 异常处理 FunTester

Trace大盘点

奋飞安全

Linux之ab命令

入门小站

Linux

数据分析师如何正确地提意见?

博文视点Broadview

网站被DDOS攻击了怎么办?

源字节1号

开源 前端开发 后端开发

档案管理系统平台:助力实现档案管理现代化

小炮

从F#中借用函数化API_.NET_Jonathan Allen_InfoQ精选文章