这是针对于博客vs2019安装和使用教程(详细)的F#项目新建示例,代码比较简单,适合入门~


目录

一、安装F#环境

二、启动程序

三、编写小程序

四、运行结果

五、注意事项


一、安装F#环境

1.运行安装程序,点击“更多”下拉菜单中的“修改”

2.勾选“数据科学和分析应用程序”和“.NET桌面开发”(可选),点击“下载时安装”


二、启动程序

1.点击菜单栏-->文件-->新建-->项目,语言选择F#,选择控制台应用程序,下一步

2.选择项目位置,命名项目,之后点击确定

3.可以看到生成了两个.fs文件

                                                                              

4.两个文件内容如下

AssemblyInfo.fs

namespace fsharp_first_try.AssemblyInfoopen System.Reflection
open System.Runtime.CompilerServices
open System.Runtime.InteropServices// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[<assembly: AssemblyTitle("fsharp_first_try")>]
[<assembly: AssemblyDescription("")>]
[<assembly: AssemblyConfiguration("")>]
[<assembly: AssemblyCompany("")>]
[<assembly: AssemblyProduct("fsharp_first_try")>]
[<assembly: AssemblyCopyright("Copyright ©  2019")>]
[<assembly: AssemblyTrademark("")>]
[<assembly: AssemblyCulture("")>]// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[<assembly: ComVisible(false)>]// The following GUID is for the ID of the typelib if this project is exposed to COM
[<assembly: Guid("9b4ab5cd-49d0-4416-a02f-29ec1447478d")>]// Version information for an assembly consists of the following four values:
//
//       Major Version
//       Minor Version
//       Build Number
//       Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [<assembly: AssemblyVersion("1.0.*")>]
[<assembly: AssemblyVersion("1.0.0.0")>]
[<assembly: AssemblyFileVersion("1.0.0.0")>]do()

Program.fs

[<EntryPoint>]
let main argv = printfn "%A" argv0 // return an integer exit code

三、编写小程序

1.编写一个小程序,主要是对分支语句(if-then-else)、for循环和函数的基本用法进行简单介绍,代码中有注释说明,不再赘述。程序如下:

Program.fs

// Learn more about F# at http://fsharp.org
// See the 'F# Tutorial' project for more help.//函数名称为Subtract1,参数为number1和number2,返回类型为double
let Subtract1 number1 number2 : double = if(number1>number2)thennumber1 - number2 //返回elsenumber2 - number1 //返回let Subtract2 number1 number2 : double = let number3: double = 0.0if(number1>number2)thenlet number3 = number1 - number2printfn "number3_2 is:%A" number3elselet number3 = number2 - number1printfn "number4_2 is:%A" number3number3 //返回[<EntryPoint>] //特性标记的函数,必须是编译序列中最后一个文件中的最后一个声明
let main argv = printfn "%A" argv//输出a+b的结果赋值给clet a = 1let b = 2let c = a + bprintfn "c is:%A" c// 输出数字0到9let d = [0 .. 9]printfn "d is:%A" d// 输出浮点数和强制类型转换为整型的数let e: double = 6.9printfn "double e:%A" eprintfn "double2int e is:%A" (int e)// 重新赋值为整型let e: int = 6printfn "int e is:%A" e// 减法函数1(if then else)let number3_1 = Subtract1 2.3 3.4printfn "number3_1 is:%A" number3_1let number4_1= Subtract1 5.4 3.2printfn "number4_1 is:%A" number4_1// 减法函数2(if then else)let number3_2 = Subtract2 2.3 3.4let number4_2 = Subtract2 5.4 3.2//for 循环let f = [for i in 0 .. 9 -> i]printfn "f is:%A" f//创建一个长度为10,元素都为0的数组let g = Array.create 10 0printfn "g is:%A" g//对每个数组中的元素进行赋值,值为其索引for i = 0 to g.Length - 1 do Array.set g i iprintfn "顺序输出:"for i = 0 to g.Length - 1 doprintfn "%A" (Array.get g i)printfn "逆序输出:"for i = g.Length - 1 downto 0doprintfn "%A" (Array.get g i)0 // return an integer exit code

四、运行结果

执行代码:

                                                                           

点击上方绿色的启动,运行程序。

其中for...to...是顺序输出,for ...downto...是逆序输出:

是不是很简单呢~


五、注意事项

1.[<EntryPoint>] 特性标记的函数,必须是编译序列中最后一个文件中的最后一个声明:也就是说如果在这个特性标记的代码段后面再写代码则会报错,应该在前面写,例如两个减法函数Subtract1和Subtract2。

2.分支语句中let不能是最后一行

3.函数返回值类型必须和函数声明的类型一致,不要忘写


返回至原博客:vs2019安装和使用教程(详细)

vs2019 开始自己的第一个F#程序相关推荐

  1. vs2017 开始自己的第一个C++程序

    vs2019的C++示例更为详细,博主链接为: vs2019 开始自己的第一个C++程序 这是针对于博客vs2017安装和使用教程(详细)的C++项目新建示例 1.点击菜单栏-->文件--> ...

  2. 试编写一个汇编语言程序,要求从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数

    试编写一个汇编语言程序,要求从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数 data segment data ends stack segment stack dw 30h dup ...

  3. linux 中输入一个c程序,从c源程序到Linux可执行代码的过程

    你写了一个C程序,然后用gcc编译之后得到一个可执行程序.看起来相当简单,是吗? 你有没有想过编译的过程中发生了什么,C程序怎么转变成二进制程序的呢? 其实,源程序最终成为可执行程序经历了如下4个阶段 ...

  4. 第一个OC类、解析第一个OC程序

    01第一个OC 类 本文目录 • 一.语法简介 • 二.用Xcode创建第一个OC的类 • 三.第一个类的代码解析 • 四.添加成员变量 • 五.添加方法 • 六.跟Java的比较 • 七.创建对象 ...

  5. NHibernate应用二:第一个NHibernate程序

    当前期工作都准备完成后,将开始NHibernate的学习过程,而在第一个NHibernate程序中,将实现通过NHibernate根据客户编号对客户表进行单条记录的查询示例.该示例中,我们将按以下几部 ...

  6. 通过分析一个C程序的汇编指令执行过程,理解计算机的工作。

    郑德伦 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 首先创建一个C程序的文 ...

  7. 学了C语言,如何利用CURL写一个下载程序?—用nmake编译CURL并安装

    在这一系列的前一篇文章学了C语言,如何为下载狂人写一个磁盘剩余容量监控程序?中,我们为下载狂人写了一个程序来监视磁盘的剩余容量,防止下载的东西撑爆了硬盘.可是,这两天,他又抱怨他的下载程序不好用,让我 ...

  8. pythongui程序,python第一个GUI程序

    第一个GUI程序 截止目前,我们的python基本语法就已经讲完了,但是python的应用确实无比之广,不同的应用领域需要学习不同的Python库,比如爬虫的urllib模块,科学计算numpy模块, ...

  9. python用一行代码编写一个回声程序_利用Python实现一个WC程序

    项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数.单词数和行数 ...

最新文章

  1. 使用面部标记提取和深度神经网络进行“昏昏欲睡”的检测
  2. java 数据反射_基本操作--反射填充数据
  3. 《xUnit Test Patterns》学习笔记6 - Test Double
  4. python重启程序代码_重启python程序
  5. android eclipse的环境配置
  6. CodeForces - 467C George and Job(二维dp)
  7. yii 使用 有赞sdk_有赞移动如何做到并行灰度的复杂场景?
  8. 一个检查SPN的小工具
  9. Java基础篇(01):基本数据类型,核心点整理
  10. 西瓜书+实战+吴恩达机器学习(九)监督学习之k近邻 K-Nearest Neighbor
  11. Webpack入门教程三十
  12. JAVASSM框架面试题
  13. php w3cschool 手册,w3cschool菜鸟教程离线版chm手册正式发布
  14. Hadoop运行环境搭建
  15. 复旦sakai安装指南
  16. 安卓Activity劫持与反劫持
  17. 如何用matlab建立风力机模型,风力机的Matlab模型及其应用
  18. MFC 鼠标画线总结
  19. 光遇服务器修复暴风眼刷新了吗,光遇暴风眼怎么进 光遇暴风眼刷新时间
  20. left semi join 和 left join 区别

热门文章

  1. 蓝桥练习---------算法训练 无聊的逗
  2. 得力台式计算机不用按电池吗,不用电脑的时候就关机?现在才知道,电脑根本不需要关机...
  3. idea如何配置tomcat
  4. Jsp+Servlet基于B2C的网上拍卖系统_秒杀与竞价
  5. java 图片image工具类,ImageUtil.java
  6. 最强电脑抓包工具Wireshark中文版下载 | 经典电脑抓包软件
  7. 9.JS面向对象补充
  8. 大年初一,给大家拜年了
  9. 数据库实验报告3-数据库系统设计
  10. 创建 JCEKS 密钥库