Haskell 使用元组定义多个函数
Haskell define multiple functions using tuples
我刚刚遇到一些 Haskell 代码,看起来像这样:
(functionOne, functionTwo)
| someCondition = (10, "Ten")
| otherwise = (20, "Twenty")
从代码的使用方式来看,我认为我理解这段代码的意图,即它只是一种更简洁的编写方式:
functionOne
| someCondition = 10
| otherwise = 20
functionTwo
| someCondition = "Ten"
| otherwise = "Twenty"
但是,我不记得以前见过以这种方式编写的函数,也不知道这种技术叫什么,所以无法搜索有关此的任何其他信息。
所以我的问题是:
- 我对这里发生的事情的理解正确吗?
- 这个技术有名字吗?
这些不是函数,只是变量绑定。您正确地理解了它是如何工作的。它没有任何特定的名称,因为它只是模式匹配的另一种应用。任何时候你可以声明一个变量,你可以在同一位置声明一个更复杂的模式。
我刚刚遇到一些 Haskell 代码,看起来像这样:
(functionOne, functionTwo)
| someCondition = (10, "Ten")
| otherwise = (20, "Twenty")
从代码的使用方式来看,我认为我理解这段代码的意图,即它只是一种更简洁的编写方式:
functionOne
| someCondition = 10
| otherwise = 20
functionTwo
| someCondition = "Ten"
| otherwise = "Twenty"
但是,我不记得以前见过以这种方式编写的函数,也不知道这种技术叫什么,所以无法搜索有关此的任何其他信息。
所以我的问题是:
- 我对这里发生的事情的理解正确吗?
- 这个技术有名字吗?
这些不是函数,只是变量绑定。您正确地理解了它是如何工作的。它没有任何特定的名称,因为它只是模式匹配的另一种应用。任何时候你可以声明一个变量,你可以在同一位置声明一个更复杂的模式。