AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

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

关注

评论

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

软件测试/人工智能|一文告诉你Python元组相关操作

霍格沃兹测试开发学社

一篇读懂Volatile关键字

是月月啊2023

Java 面试题

低代码实现探索(六十一)字段隔离解耦

零道云-混合式低代码平台

软件测试/人工智能|一文告诉你Python字符串的相关操作

霍格沃兹测试开发学社

系统分析师还是架构师?

escray

技术人写作 21 天技术人写作行动营

写作行动营学员打卡-Day3-工作笔记

Luke

【写作训练营打卡|03】

英特尔研究院将在NeurIPS大会上展示业界领先的AI研究成果

E科讯

一款带键扫的LED驱动电路

芯动大师

如何将自己的项目打包成whl文件分享

IT蜗壳-Tango

每日一题:LeetCode-105. 从前序与中序遍历序列构造二叉树

Geek_4z9ami

面试 算法 LeetCode 二叉树 Golag

【智问-Askture】降低企业成本,定制一个专属自己的ChatGPT!

伊克罗德信息科技

AIGC 大语言模型

Java多线程系列5:sleep()

BigBang!

Java多线程

KubeSphere Marketpalce 上新!Databend Playground 助力快速启动数据分析环境

Databend

17 | 跳表:为什么Redis一定要用跳表来实现有序集合

鲁米

OpenTiny Vue 3.12.0 发布:文档大优化!增加水印和二维码两个新组件🎈

Kagol

IT外包对中小企业的独特优势

Ogcloud

外包 IT 外包公司 外包项目 IT 运维

2024营销日历新鲜出炉!提前规划,赢在起跑线!

彭宏豪95

互联网 营销 在线白板 活动策划 效率软件

SQL CREATE INDEX 语句- 提高数据库检索效率的关键步骤

小万哥

MySQL 数据库 sql 程序员 后端开发

最全最详细的Java异常处理机制

是月月啊2023

Java 面试题

代币开发:加密货币开发与IDO预售相关指南

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

软件测试/人工智能|HTTPS加密协议,你会多少?

霍格沃兹测试开发学社

技术人年度回顾:大模型驱动的变革与影响

熬夜磕代码、

大模型

【技术人的 2023】 ——我的AI学习之旅年度总结

YoLo

AI

PostgreSQL 技术内幕(十二)CloudberryDB并行化查询之路

酷克数据HashData

FFA 2023 明日开幕,Flink 智能诊断、小红书流批一体实践精彩来袭

小红书技术REDtech

大数据 flink 架构 流批一体

谷歌史上最强大模型Gemini抢鲜知!!!

江湖修行

AI Google openai #人工智能 #大模型

全面高压化与全面超快充,破解新能源汽车的时代难题

脑极体

数字能源

极狐GitLab 和 ArgoCD 集成实现 GitOps

极狐GitLab

DevOps gitlab CD workflow ArgoCD

写作训练营打卡2--工作后最有成就感的事

Avril

2023 总结对AI的总结和展望

查拉图斯特拉说

AI 大模型

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