写点什么

在 Linux 以及 Mac OS X 启用 F#

  • 2016-04-29
  • 本文字数:784 字

    阅读完需:约 3 分钟

随着.NET Core 的推进,如今我们在 Linux 和 Mac OS X 平台上也可以和原先 Windows 平台之下一样运行 F#程序。Microsoft 的 F#项目经理 David Stephens 先生在 Build 2016 大会上向大家介绍了如何在Linux 以及Mac OS X 启用F#

第一步需要安装.NET Core 工具。这一步对于C#和F#来说是相同的,这个工具是专属于.NET 而不是其他特定语言的。

一个基础的F#项目需要使用以下CLI 指令创建:

复制代码
dotnet new –lang f#

生成的项目文件是一个 Json 文件,该文件依照 NuGet 3 中引入的最新的项目文件格式。一个最新创建的 F#项目的 project.json 文件中包含了编译运行一个程序的基本依赖:

复制代码
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"compilerName": "fsc",
"compileFiles": [
"Program.fs"
],
"dependencies": {
"Microsoft.FSharp.Core.netcore": "1.0.0-alpha-151221",
"NETStandard.Library": "1.0.0-rc2-23811"
},
"frameworks": {
"dnxcore50": { }
}
}

在项目创建时并不包含依赖集。在执行程序之前唯一要做的一步是恢复它们:

复制代码
dotnet restore
dotnet run

以上所介绍的步骤是在 .NET Core 上编译运行一个 F#程序所需的最基础的步骤。跨平台 IDEs Visual Studio Code 和 Atom 通过开源扩展 Ionide 提供了对 F#的支持。此外,一些常用的 IDE 功能,比如说 autocompletion 和 Ionide 包括了:

值得注意的是,在运行 F#项目的同时,.Net CLI 和.Net Core 在运作,移植库到 .Net Core 中的工作也在运作。

查看英文原文 Getting Started with F# on Linux and Mac OS X


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-04-29 19:002636
用户头像

发布了 218 篇内容, 共 78.3 次阅读, 收获喜欢 76 次。

关注

评论

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

整合Elastic-Job(支持动态任务)

TaurusCode

springboot SpringCloud 分布式任务调度 Elastic-job

技术译文|如何将 Pulsar 用作消息队列

Apache Pulsar

开源 云原生 pulsar Apache Pulsar 消息中间件

海量数据拉升背后的成本困扰:存算分离成美图降本增效新良方

华为云开发者联盟

大数据 华为云 海量数据

2020大厂面试一道高频Spring题,90%的Java开发者都拜倒在它脚下!

Java架构师迁哥

智谱AI首席科学家唐杰团队荣获国际数据挖掘顶会时间检验应用科学奖

DT极客

揭示智能边缘重大机遇 英特尔邀产学研推动产业智能升级

E科讯

flutter 高效开发工具集

Daniel

Java 回调(Callback)接口学习使用

魏杰

你一定看得懂的Netty客户端启动源码分析!

Java 编程 Netty 架构师

Java引入第三方包的路径问题

谷鱼

路径

从全备中恢复单库或单表,小心有坑!

Simon

MySQL MySQL 运维

添加字幕哪个视频剪辑软件比较简单?

奈奈的杂社

视频创作 视频剪辑 视频后期 自媒体 后期字幕

环信和阿里云签署云原生合作,携手共建云通讯“新基建”

DT极客

恶补,一文了解 8 种常见的数据结构

Java架构师迁哥

2020年程序员必备的面试重点+面试真题+个人软实力,你学废了吗?

Java架构师迁哥

华为云IoT智简联接,开启物联世界新纪元

华为云开发者联盟

物联网

分布式系统实践解读丨详解高内聚低耦合

华为云开发者联盟

nginx 实现接口版本控制

程序员与厨子

php nginx laravel 版本控制

腾讯架构师:亲手Debug之后,你就知道为何面试问源码了

小Q

Java tomcat 程序员 架构 调优

一个线程池中的线程异常了,那么线程池会怎么处理这个线程?

Java架构师迁哥

深度解析物联网设备的区块链技术

CECBC

区块链 智能合约 物联网

时空碰撞优化系列·一

誓约·追光者

hive 数据分析 Sparksql 计算效率 优化

支付平台架构技术实现之终端安全

博文视点Broadview

架构 安全攻防 安全 支付系统 风控

新疆采风笔记:送行·出发·火车上

刘新吾

随笔 旅行 新疆

华为云推UGO:一手抓结构迁移,一手抓SQL转换

华为云开发者联盟

golang 表格编程降低圈复杂度

猴子胖胖

表格开发 Go 语言

“大数据+区块链”的智慧城市建设!

CECBC

区块链 大数据

阿里P8大牛的建议,工作1-5年的Java工程师如何让自己变得更值钱

Java架构之路

Java 编程 程序员 面试

(2)skynet ubuntu下载与安装

休比

区块链用于支付手段只是开端

CECBC

区块链 金融

架构师训练营第 1 期 第 1 周作业

李循律

在Linux以及Mac OS X启用F#_.NET_Pierre-Luc Maheu_InfoQ精选文章