相关疑难解决方法(0)

F#功能与值

这是一个非常简单的问题,我只是想检查一下我正在做什么,以及我如何解释F#是有道理的.如果我有声明

let printRandom = 
  x = MyApplication.getRandom()
  printfn "%d" x
  x
Run Code Online (Sandbox Code Playgroud)

printRandomF#不是创建函数,而是运行一次,然后为其赋值.所以,现在,当我调用printRandom时,不是获取一个新的随机值并打印它,我只是得到第一次返回的内容.我可以解决这个我的定义:

let printRandom() = 
  x = MyApplication.getRandom()
  printfn "%d" x
  x
Run Code Online (Sandbox Code Playgroud)

这是在无参数函数和值之间进行区分的正确方法吗?这对我来说似乎不太理想.是否会对咖喱,成分等产生影响?

f#

16
推荐指数
3
解决办法
1245
查看次数

如果支持void类型,为什么我需要在F#中使用单位类型?

我读了这篇MSDN文章:

单位类型(F#)

...单位类型是指示缺少特定值的类型; 单元类型只有一个值,当没有其他值存在或需要时,它充当占位符...单元类型类似于C#和C++等语言中的void类型...

所以...好吧,我明白,单位类型是这样一种类型,它只有一个值().但我有一些问题:

  1. 为什么需要?
  2. 什么时候需要?

我不明白为什么不在F#中使用void类型,比如C#和C++使用.

如果我看下表:

原始类型(F#)

Type   .NET Type    Description  
void   Void         Indicates no type or value.
Run Code Online (Sandbox Code Playgroud)

我看到F#确实有一个void类型.所以我不明白为什么需要单位类型; 看起来它与void非常相似.

我想它与功能语言范式有关,这就是为什么需要它,所以请...向我解释一下这个问题.

lambda f# functional-programming void unit-type

12
推荐指数
3
解决办法
1168
查看次数

标签 统计

f# ×2

functional-programming ×1

lambda ×1

unit-type ×1

void ×1