首页 > 其他分享 >无涯教程-F# - 模块声明

无涯教程-F# - 模块声明

时间:2023-11-29 19:31:37浏览次数:31  
标签:25 教程 无涯 module let 模块 声明 Arithmetic

F#模块是F#代码构造的组合,如类型,值,函数值和do绑定中的代码,它被实现为仅具有静态成员的公共语言运行时(CLR)类。

根据情况,整个文件是否包含在模块中,有两种类型的模块声明-

  • 顶级模块声明
  • 本地模块声明

在顶层模块声明中,整个文件都包含在模块中,在这种情况下,文件中的第一个声明是模块声明。

在本地模块声明中,只有在该模块声明下缩进的声明才是模块的一部分。

//顶级模块声明。
module [accessibility-modifier] [qualified-namespace.]module-name
   declarations

//本地模块声明。
module [accessibility-modifier] module-name =
   declarations

请注意,可访问性修饰符可以是以下之一-public,private,internal。默认值为 public 。

示例1

模块文件Arithmetic.fs-

module Arithmetic
let add x y =
   x + y

let sub x y =
   x - y
	
let mult x y =
   x * y
	
let div x y =
   x/y

程序文件main.fs-

//Fully qualify the function name.
open Arithmetic
let addRes = Arithmetic.add 25 9
let subRes = Arithmetic.sub 25 9
let multRes = Arithmetic.mult 25 9
let divRes = Arithmetic.div 25 9

printfn "%d" addRes
printfn "%d" subRes
printfn "%d" multRes
printfn "%d" divRes

编译并执行程序时,将产生以下输出-

34
16
225
2
110
90
1000
10

示例2

//Module1
module module1 =
   //缩进模块中用等号声明的所有程序元素。
   let value1 = 100
   let module1Function x =
      x + value1

//Module2
module module2 =
   let value2 = 200

   //使用限定名称访问该函数。
   //from module1.
   let module2Function x =
      x + (module1.module1Function value2)

let result = module1.module1Function 25
printfn "%d" result

let result2 = module2.module2Function 25
printfn "%d" result2

编译并执行程序时,将产生以下输出-

125
325

参考链接

https://www.learnfk.com/fsharp/fsharp-modules.html

标签:25,教程,无涯,module,let,模块,声明,Arithmetic
From: https://blog.51cto.com/u_14033984/8619968

相关文章

  • 安装模块安装不上相关
    pip3installdjango#本质是去https://pypi.python.org/simple,搜这个模块,会根据你的平台下载在一个安装包(windows平台是whl),下载完,再安装#pip安装失败的情况#我们可以绕过它,有了whl文件以后,自己装#https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencvpip3installdjango.w......
  • IO模块在锂电池储能行业的功能
    随着可再生能源的快速发展和能源储存技术的不断进步,储能行业在近年来得到了广泛的关注。作为一种重要的自动化控制模块,IO模块在储能行业中也扮演着重要的角色。IO模块可以实现控制器到自动化最底层之间的IO通信。在储能系统中,IO模块可以连接各种设备,如电池组、逆变器、充电桩等,并实......
  • 找到工程中某模块所有被实例化的地方
    在硬件设计中,系统级环境十分复杂。想要找到某个基本模块被实例化的地方比较简单,全局搜索即可。但是想要将所有的引用路径也一并找到,如果光靠全局搜索,就太复杂了。这种场景下,可以借用仿真工具的搜索功能实现目标。以VCS为例。使用VCS仿真工程,并打开DVE图形界面后。选择Edit/Sea......
  • 【Python入门教程】Python的shutil库介绍+基础函数使用(文件/目录复制、移动、删除、解
    ​前言        很多时候编过的代码过段时间就忘了,所以想用博文记录一下一些平时常用库的函数,今天跟大家分享一下python的shutil库的常用函数,包括文件复制、删除、移动等常见操作。同时为了复习之前python类的使用,所以今天的代码就用类封装起来了,大家直接看函数就行,不需......
  • 软件测试/人工智能|一文告诉你LangChain核心模块chains原理
    简介Chain是LangChain的核心模块之一,它将每个零散的逻辑串联成一整个业务流程,相当于是所有复杂逻辑的基础,由此可见chain的重要性非比寻常。本文就来给大家介绍一下Chain模块的原理。下面是chain的各种类型设计思路LangChain能火爆的主要原因之一就是Chain的设计非常巧妙,它......
  • Gitee - 基于 Git 的代码托管和研发协作平台本地代码同步教程
    什么是Gitee?一、Gitee的发展史。Gitee(码云)是开源中国于2013年推出的基于Git的代码托管平台、企业级研发效能平台,提供中国本土化的代码托管服务。二、个人对Gitee的理解Gitee跟Git有什么区别,个人认为一个是国内、一个是国外,但是两个的目的都是一样的,都是为了方便彼此更好的代......
  • kore 模块编译三方依赖库的一些说明
    kore对于三方库的编译是通过动态链接的,所以实际部署需要在系统安装对应的库参考效果比如macos编译官方示例的一个jsonrpc服务编译效果参考资料https://docs.kore.io/4.2.0/applications/koreconf.html......
  • 【Python】包和模块的应用
    1、模块模块就是.py文件,一个python文件就是一个模块,可以使用import关键字将一个模块导入到另一个模块中使用。python模块搜索路径:当前目录PATHONPATH环境变量标准链接库目录,是Python按照标准模块的目录,是在安装Python时自动创建的目录可以通过sys.path变量查看当前模块搜......
  • 基于kore 的共享模块以及include 配置实现动态的web api 能力
    kore支持include以及动态load共享模块的能力,可以让我们实现动态扩展的api加载能力参考玩法参考示例项目结构├──conf│├──hello.conf│├──index.conf│├──mydemo.conf│└──myhello.conf├──hello.so└─......
  • kore load 模块的一些功能
    目前此玩法官方文档暂时没介绍,但是示例中包含,感觉比较有意思,所以说明下参考使用配置如下,就是包含了一个共享模块的路径以及一个字符串,这个字符串实际上是模块中的一个方法,可以实现一个当模块加载时候的任务 load./memtag.soinit参考代码......