Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.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
Function Haskell-让函数调用函数_Function_Haskell_Lambda_Anonymous Function - Fatal编程技术网

Function Haskell-让函数调用函数

Function Haskell-让函数调用函数,function,haskell,lambda,anonymous-function,Function,Haskell,Lambda,Anonymous Function,我们目前正在处理一项来自大学的任务,我们不完全理解,请不要解决,只有想法或建议 给出的是一种类型: type MyType = String -> String 现在我们正在尝试建立一个函数,它接受两个字符串和一个函数类型,然后给出一个函数类型 myCode :: String -> String -> MyType -> MyType 我们已经实现了一个函数,可以用作MyType one: emptyString :: MyType emptyString :: (

我们目前正在处理一项来自大学的任务,我们不完全理解,请不要解决,只有想法或建议

给出的是一种类型:

type MyType = String -> String
现在我们正在尝试建立一个函数,它接受两个字符串和一个函数类型,然后给出一个函数类型

myCode :: String -> String -> MyType -> MyType
我们已经实现了一个函数,可以用作MyType one:

emptyString :: MyType
emptyString :: (\a -> "")
任务是能够存储几个2x字符串。这是我们目前的想法:

myCode :: String -> String -> MyType ->MyType
myCode a b c = (\x -> b)
在本例中,我们有一个输入字符串,它是Hello,另一个是World,然后作为c放入emptyString。 这适用于一个字符串,因为当我们在控制台中键入以下内容时:

a = (myCode "Hello" "World" emptyString) ""
我们通过输入a得到世界。现在最困难的部分是:我们应该能够存储其中的几个,搜索它们是另一项任务,现在不需要。我们认为在声明另一个变量时,现在可以使用:

b = (myCode "1" "2" a) "Hello" "World" emptyString "")
这将在b中调用保存为a的函数,并在此函数中调用emptyString。 正如你可能已经猜到的,它不起作用!我们真的不知道如何从现在开始

当你到达这一部分时,这意味着你花了时间来理解我们对任务的复杂解释——非常感谢


提前感谢您的建议和帮助

从amalloy在评论中提出的问题来看,您似乎正在尝试基于延续传递风格的范例构建一个电话簿

基本上,你的类型会发生什么

myCode :: String -> String -> MyType -> MyType
您将生成一段数据dat=myCode a b pb,类型为MyType。因此,您可以使用一个s::字符串查询dat,它将输出另一个字符串。在dat s的操作中,如果将其扩展到定义

dat s = myCode a b pb s
您可以访问三个字符串,a、b和pbs返回的任何内容。您将递归地构建功能,或者使用b和s做一些事情,或者将其推到pb,让继续处理它


希望这对你有所帮助,但不要太多的付出。

商店是什么?什么是2x字符串?这是对电话簿练习的混淆吗?看起来与最近的问题a所指的是单个字符串,而不是函数。在与b的绑定中,它不是myCode的有效参数。即使是,myCode的结果也是MyType类型的值,它只适用于一个值,而不是4。您似乎对函数的定义和应用存在严重误解,这使得您很难理解您正在尝试执行的操作。这项任务很容易猜测,一定是一项常见任务:非常感谢您的帮助