如何在Scala中实现OCaml / F#的“函数”构造?

电咖啡

我在Scala中发现的一个常见趋势是:

def someFunction(a: SomeClass) = a match { ... }

从那以后a再也不会使用了。这种模式在FP中非常常见,OCaml和F#具有内置的构造,可让您完全放弃该参数。

而不是这样写:

let someFunction a = 
  match a with
  | 0 -> true
  | _ -> false

您可以简单地这样写:

let someFunction =
  function
  | 0 -> true
  | _ -> false

所以我的问题是,是否可以在Scala中编写类似的内容?

def someFunction = function {
  case 0 => true
  case _ => false
}

保存其他不必要的参数。

我试图将其编写为带有按名字调用参数的函数,但是Scala不允许我做一个空match块。

是否可以?还是Scala可能已经内置了这样的东西?

菊宿

使用函数而不是方法:

val someFunction: Int => Boolean = {
  case 0 => true
  case _ => false
}

您必须显式地编写类型注释,但这一定不是缺点-对于API的使用,它是有用的文档。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

F#中的通用构造函数

来自分类Dev

F#中的惯用构造函数

来自分类Dev

F#对象构造函数

来自分类Dev

如何在Scala中为子类实现DRY复制构造函数?

来自分类Dev

F#类中的主要构造函数与结构之间的行为差异?

来自分类Dev

使用F#类型提供程序如何将基本构造函数调用作为构造函数定义的一部分实现

来自分类Dev

在F#中,带有强制构造函数参数的对象初始化程序语法是什么?

来自分类Dev

F#记录构造函数

来自分类Dev

F#中的多个构造函数和类继承

来自分类Dev

如何在F#中别名.NET函数

来自分类Dev

F#调用构造函数中的成员函数

来自分类Dev

如何在F#中实现“早退”逻辑

来自分类Dev

F#:如何将Json.NET [JsonConstructor]属性应用于主要构造函数?

来自分类Dev

从F#中的序列构造中调用函数

来自分类Dev

有没有一种方法可以为F#构造函数中的函数指定命名参数?

来自分类Dev

F#使用构造函数作为函数

来自分类Dev

接受F#中的函数的函数

来自分类Dev

在理解F#中的类构造函数时遇到问题

来自分类Dev

在F#中扩展函数

来自分类Dev

F#模式匹配:与构造函数错误使用时,如何解释“ as”?

来自分类Dev

F#构造函数约束

来自分类Dev

创建辅助非通用构造函数时F#中的编译器错误

来自分类Dev

在F#中,如何使用DateTime值构造记录列表?

来自分类Dev

如何在F#中正确实现reduce函数

来自分类Dev

在F#中,如何访问函数的属性?

来自分类Dev

如何在F#中返回实现IAsyncActionFilter的Task?

来自分类Dev

F#:尝试支持在F#和C#惯用语中的构造函数中传递函数

来自分类Dev

如何在Scala中实现OCaml / F#的“函数”构造?

来自分类Dev

如何在 C# 中实现 F# 高阶函数?

Related 相关文章

  1. 1

    F#中的通用构造函数

  2. 2

    F#中的惯用构造函数

  3. 3

    F#对象构造函数

  4. 4

    如何在Scala中为子类实现DRY复制构造函数?

  5. 5

    F#类中的主要构造函数与结构之间的行为差异?

  6. 6

    使用F#类型提供程序如何将基本构造函数调用作为构造函数定义的一部分实现

  7. 7

    在F#中,带有强制构造函数参数的对象初始化程序语法是什么?

  8. 8

    F#记录构造函数

  9. 9

    F#中的多个构造函数和类继承

  10. 10

    如何在F#中别名.NET函数

  11. 11

    F#调用构造函数中的成员函数

  12. 12

    如何在F#中实现“早退”逻辑

  13. 13

    F#:如何将Json.NET [JsonConstructor]属性应用于主要构造函数?

  14. 14

    从F#中的序列构造中调用函数

  15. 15

    有没有一种方法可以为F#构造函数中的函数指定命名参数?

  16. 16

    F#使用构造函数作为函数

  17. 17

    接受F#中的函数的函数

  18. 18

    在理解F#中的类构造函数时遇到问题

  19. 19

    在F#中扩展函数

  20. 20

    F#模式匹配:与构造函数错误使用时,如何解释“ as”?

  21. 21

    F#构造函数约束

  22. 22

    创建辅助非通用构造函数时F#中的编译器错误

  23. 23

    在F#中,如何使用DateTime值构造记录列表?

  24. 24

    如何在F#中正确实现reduce函数

  25. 25

    在F#中,如何访问函数的属性?

  26. 26

    如何在F#中返回实现IAsyncActionFilter的Task?

  27. 27

    F#:尝试支持在F#和C#惯用语中的构造函数中传递函数

  28. 28

    如何在Scala中实现OCaml / F#的“函数”构造?

  29. 29

    如何在 C# 中实现 F# 高阶函数?

热门标签

归档