Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Types 给定函数的最一般类型_Types_Semantics - Fatal编程技术网

Types 给定函数的最一般类型

Types 给定函数的最一般类型,types,semantics,Types,Semantics,我正在学习操作语义和类型系统的测试,我遇到了一个不确定如何处理的任务 任务如下:确定函数的最通用类型ff(a,b,c,d)=g(c,d),其中g=a(b) 我猜函数f(a,b,c,d)返回函数g(c,d)的输出。因此,让我们假设c,d是一些基本类型的变量,a是一个具有一个基本类型的参数b的函数。但是我不知道当以g(c,d)的形式调用这个函数时,如果不带参数使用,g=a(b)意味着什么。。。或者,如果我刚才说的是对的:-/ 我不知道在这里该怎么办。你能给我一个提示或者让我看一些关于这个主题的文章

我正在学习操作语义和类型系统的测试,我遇到了一个不确定如何处理的任务

任务如下:确定函数的最通用类型f
f(a,b,c,d)=g(c,d),其中g=a(b)


我猜函数f(a,b,c,d)返回函数g(c,d)的输出。因此,让我们假设c,d是一些基本类型的变量,a是一个具有一个基本类型的参数b的函数。但是我不知道当以
g(c,d)
的形式调用这个函数时,如果不带参数使用,g=a(b)意味着什么。。。或者,如果我刚才说的是对的:-/

我不知道在这里该怎么办。你能给我一个提示或者让我看一些关于这个主题的文章吗(最好是像这样的例子)。到目前为止,我唯一发现的是关于类型系统和语义的一般文本。非常感谢

你必须问自己“a是什么样的函数?”

由于a(b)后来被用作g(c,d)(与(a(b))(c,d)相同),我们知道a(b)的结果是一个函数。所以“a”是一个返回函数的函数。具体来说,它是一个函数,返回一个接受两个参数c和d的函数

如果上面混淆了(我不知道你对函数编程有多熟悉),那么考虑一个具体的例子可能会有帮助。假设您有两个函数,foo和bar。foo将两个数字(c和d)相乘,bar将两个数字相加

a可以是一个函数,它选择使用foo还是bar

所以f(a,“bar”,1,2)应该是(a(“bar”)(1,2)=1+2=3。 而f(a,“foo”,1,2)将是(a(“foo”))(1,2)=1*2=2。你必须问自己“a是什么样的函数?”

由于a(b)后来被用作g(c,d)(与(a(b))(c,d)相同),我们知道a(b)的结果是一个函数。所以“a”是一个返回函数的函数。具体来说,它是一个函数,返回一个接受两个参数c和d的函数

如果上面混淆了(我不知道你对函数编程有多熟悉),那么考虑一个具体的例子可能会有帮助。假设您有两个函数,foo和bar。foo将两个数字(c和d)相乘,bar将两个数字相加

a可以是一个函数,它选择使用foo还是bar

所以f(a,“bar”,1,2)应该是(a(“bar”)(1,2)=1+2=3。 而f(a,“foo”,1,2)将是(a(“foo”))(1,2)=1*2=2。你必须问自己“a是什么样的函数?”

由于a(b)后来被用作g(c,d)(与(a(b))(c,d)相同),我们知道a(b)的结果是一个函数。所以“a”是一个返回函数的函数。具体来说,它是一个函数,返回一个接受两个参数c和d的函数

如果上面混淆了(我不知道你对函数编程有多熟悉),那么考虑一个具体的例子可能会有帮助。假设您有两个函数,foo和bar。foo将两个数字(c和d)相乘,bar将两个数字相加

a可以是一个函数,它选择使用foo还是bar

所以f(a,“bar”,1,2)应该是(a(“bar”)(1,2)=1+2=3。 而f(a,“foo”,1,2)将是(a(“foo”))(1,2)=1*2=2。你必须问自己“a是什么样的函数?”

由于a(b)后来被用作g(c,d)(与(a(b))(c,d)相同),我们知道a(b)的结果是一个函数。所以“a”是一个返回函数的函数。具体来说,它是一个函数,返回一个接受两个参数c和d的函数

如果上面混淆了(我不知道你对函数编程有多熟悉),那么考虑一个具体的例子可能会有帮助。假设您有两个函数,foo和bar。foo将两个数字(c和d)相乘,bar将两个数字相加

a可以是一个函数,它选择使用foo还是bar

所以f(a,“bar”,1,2)应该是(a(“bar”)(1,2)=1+2=3。
而f(a,“foo”,1,2)将是(a(“foo”))(1,2)=1*2=2。

a是一个单参数的函数-它返回一个由两个参数组成的函数(称为g)@user3125280您应该给出答案。。这是一个很好的答案。a是一个由一个参数组成的函数-它返回一个由两个参数组成的函数(称为g)@user3125280你应该把它作为一个答案。。这是一个很好的答案。a是一个由一个参数组成的函数-它返回一个由两个参数组成的函数(称为g)@user3125280你应该把它作为一个答案。。这是一个很好的答案。a是一个由一个参数组成的函数-它返回一个由两个参数组成的函数(称为g)@user3125280你应该把它作为一个答案。。这是一个很好的答案。谢谢。。这实际上是有道理的,而且帮助很大!谢谢这实际上是有道理的,而且帮助很大!谢谢这实际上是有道理的,而且帮助很大!谢谢这实际上是有道理的,而且帮助很大!