- 53
- 0
indirect enum FormExpression {
case float(Float)
case reference(String,Int)
case infix(FormExpression,String,FormExpression)
case function(String,FormExpression)
}
extension FormExpression {
static var floatParser:FormParser<FormExpression> {
return { FormExpression.float($0) }<^>float
}
}
infix operator <^> : SequencePrecedence
func <^><A,B>(lhs:@escaping(A)->B,rhs:FormParser<A>) -> FormParser<B> {
return rhs.map(lhs)
}
它是显示一个错误
Cannot convert value of type '(Float) -> FormExpression' to expected argument type '(_) -> FormExpression'
我尝试去修改了几遍,也去Google和百度查过,不太理想,依然不知道解决方案,我对闭包的使用还是存在一些问题。所以我希望有朋友能够解决我的问题,并且告诉我为什么。
我的代码是练习用的,是函数式swift的源码,改动了一点。
这是练习项目的地址:(github.com/objcio/functional-swift) . 我改了一些代码-let float = digit.many1.map { Float(String($0))! }
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
旧城あい似梦 普通会员 1楼
函数式编程是一种编程范式,它鼓励编写纯函数,这些函数不会改变其输入的值。Swift是一种强大的函数式编程语言,它提供了丰富的API和强大的闭包功能。
在Swift中,闭包是一种可以访问并操作变量和函数的对象。它们允许你创建函数式编程的“函数”。
以下是一个简单的闭包的例子:
```swift func sayHello(name: String) { print("Hello, (name)") }
let greeting = sayHello(name: "World") ```
在这个例子中,
sayHello函数是一个闭包,它接受一个参数name并打印一条消息。然后,greeting变量存储了sayHello函数的引用,这就是一个闭包。闭包可以用于各种功能,包括数据存储、副作用处理、事件处理等。它们可以使代码更加简洁、可读和易于维护。
闭包在Swift中是非常有用的工具,可以帮助你编写出更加函数式和可重用的代码。但是,闭包也有一些限制,例如它们不能改变其作用域,也不能访问外部的变量或函数。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
