方案函数的位置独立参数
如何将与位置无关的参数传递给方案函数?
How do I pass position-independent parameters to scheme functions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何将与位置无关的参数传递给方案函数?
How do I pass position-independent parameters to scheme functions?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
在 PLT 方案中,您可以使用:
或者
两者都会返回 30。
In PLT Scheme you can use:
or
both would return 30.
方案中没有对此的标准支持,但请查看 this
There's no standard support for this in scheme but have a look at this
我不是方案专家,但我认为参数需要是一对而不是原子,然后您从对中创建一个参数列表,并使用 let 块将值绑定到实际参数。 而且,出于对所有美好事物的热爱,请调用辅助函数以正确的顺序使用参数完成实际工作,因为在递归中调用 get-param 会变得昂贵。
真正聪明的人会创建一个工厂函数,该函数将采用任意 lambda 表达式并从中构建等效的位置独立 lambda。
I am not a scheme guru, but I'm thinking that parameters need to be a pair rather than an atom, then you make a parameter list from your pairs and use a let block to bind the values to actual parameters. And, for the love of all that is beautiful, call a helper function to do the actual work with the parameters in the right order since calling get-param in recursion is going to get expensive.
Someone who is really clever would make a factory function that would take an arbitrary lambda expression and build an equivalent position independent lambda from it.