写点什么

从 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:501327
用户头像

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

关注

评论

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

【YashanDB知识库】备库扩缩容指导

YashanDB

数据库 yashandb

【YashanDB知识库】归档日志清理

YashanDB

数据库 yashandb

动态壁纸制作工具Dynaper - Dynamic Wallpapers for mac激活版

小玖_苹果Mac软件

【YashanDB知识库】WAS配置YashanDB JDBC连接

YashanDB

数据库 yashandb

【YashanDB知识库】YCM和YMP密码重置

YashanDB

yashandb

2025年中国(深圳)国际移动消费电子及产品展会

秋硕展览

【YashanDB知识库】私有maven使用崖山JDBC驱动

YashanDB

数据库 yashandb

首个“非遗版春节”怎么过?扫描全能王发起新春扫描活动

合合技术团队

人工智能 AI 算法

【YashanDB知识库】YashanDB安全设置示例

YashanDB

数据库 yashandb

【YashanDB知识库】Yasldr错误处理

YashanDB

数据库 yashandb

优秀的markdown写作软件Ulysses for Mac 中文激活版

小玖_苹果Mac软件

多协议远程管理软件Termius for Mac激活版

小玖_苹果Mac软件

Java开发分析工具JProfiler 14 for Mac激活版

小玖_苹果Mac软件

电子书制作软件Jutoh for Mac中文注册版

小玖_苹果Mac软件

腾讯面试:那些腾讯面试过的MySQL场景问题

王中阳Go

腾讯 MySQL 高可用 面试问题 数据库、

人工智能丨AI助力软件测试:从小红书与DeepSeek合作看未来发展

测试人

软件测试

【YashanDB知识库】YashanDB查询时间与实际时间默认少8小时

YashanDB

数据库 yashandb

矢量图形设计软件Illustrator 2024 for Mac(AI2024)中文激活版

小玖_苹果Mac软件

电脑风扇控制软件Macs Fan Control Pro for mac中文激活版

小玖_苹果Mac软件

苹果电脑系统维护工具TinkerTool System 9 for mac激活版

小玖_苹果Mac软件

客户案例|某车企建设统一监控平台实践

腾讯云可观测平台

Prometheus 日志服务 腾讯云可观测平台

AI口语陪练APP的测试

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语学习

【YashanDB知识库】YCM数据库托管遇到的问题

YashanDB

数据库

【YashanDB知识库】非YCM方式的自动备份方案示例

YashanDB

数据库 yashandb

【YashanDB知识库】通过导入导出修改用户名称

YashanDB

数据库

【YashanDB知识库】Mybatis-Plus适配崖山配置

YashanDB

数据库 yashandb

百度APP iOS端磁盘优化实践(上)

百度Geek说

百度

首批认证!Aloudata AIR 通过中国信通院“数据虚拟化平台技术要求”评测

Aloudata

数据分析 数据管理 数据集成 数据编织 数据虚拟化技术

【YashanDB知识库】字符集latin1的MySQL中文数据如何迁移到YashanDB

YashanDB

yashandb

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