硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

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

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

关注

评论

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

鲲鹏展翅|SphereEx 获华为鲲鹏技术认证

SphereEx

TDSQL核心特性:极具挑战的“四高”服务与安全可运维

腾讯云数据库

数据库 tdsql

代理服务器转发消息时的相关头部(qbit)

qbit

正向代理与反向代理 Proxy

云资源生命周期管理怎么做?用什么软件好?

行云管家

云计算 云服务 云资源 生命周期管理

TDSQL inside之路

腾讯云数据库

数据库 tdsql

华为云与北大BIOPIC联合发布蛋白质多序列比对开源数据集

华为云开发者联盟

AI 华为云 蛋白质 多序列 开源数据集

GraphQL 快速入门【2】环境设置

码语者

Rest graphql

分布式TDSQL的实践

腾讯云数据库

数据库 tdsql

明道云在工程项目行业中的应用场景

明道云

快速提升Golang编程能力:那就一起用Go做项目吧

博文视点Broadview

MYSQL离线迁移至分布式TDSQL

腾讯云数据库

数据库 tdsql

TDSQL 全时态数据库系统 -- 典型案例

腾讯云数据库

数据库 tdsql

TDSQL数据同步和备份

腾讯云数据库

数据库 tdsql

统信软件张磊:国产操作系统如何获得大众市场的认可?

Jessie

开源 最佳实践 新基建 企业动态 文化 & 方法

开放原子全球开发者峰会「开源治理」论坛预告(更新中)

开放原子开源基金会

张宏江出席HICOOL 2021全球创业者峰会,阐述AI研究与创业新机遇

硬科技星球

人工智能 大模型时代 悟道2.0

简化IT运维工作,就要学会使用自动化运维工具!

行云管家

运维 云服务 IT运维

「TEG+系列」破局者 - 腾讯金融级数据库TDSQL

腾讯云数据库

数据库 tdsql

Tensorflow保存神经网络参数有妙招:Saver和Restore

华为云开发者联盟

神经网络 tensorflow 变量 Saver Restore

酷家乐 UI 自动化测试平台实践

CPPAlien

测试框架 selenium BDD UI测试 活文档

小游戏如何应对大流量?Shopee Shake 的大促实践

Shopee技术团队

后端 高并发 游戏 电商大促 Shopee

TDSQL是什么:腾讯如何打造一款金融级分布式数据库

腾讯云数据库

数据库 tdsql

TDSQL金融级特性之:数据强一致性保障

腾讯云数据库

数据库 tdsql

淘宝网 Java 千亿级并发系统架构设计笔记(全彩版小册开源)

Java 架构 面试 后端 高并发

华为云GaussDB:发挥生态优势,培养应用型DBA

华为云开发者联盟

数据库 开源 GaussDB 云数据库 dba

数字化转型的终局:赛博朋克?社会主义?

龙归科技

数字化 软件系统 软件经济 赛博朋克

吊打面试官必备-阿里内部性能优化实战手册

Java架构师迁哥

马某兵VIP资料惨遭泄露,Java大厂面试手册,21年高频题版

Java架构师迁哥

SpringBoot 如何进行对象复制,老鸟们都这么玩的

Java 架构 后端 计算机 框架

常见的安全应用识别技术有哪些?

郑州埃文科技

TDSQL核心架构

腾讯云数据库

数据库 tdsql

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