gpt4 book ai didi

rust - 是否可以以普通绑定(bind)的方式定义(递归)函数?

转载 作者:行者123 更新时间:2023-11-29 08:29:03 25 4
gpt4 key购买 nike

<分区>

有什么方法可以绑定(bind)(而不是定义)可能递归 的函数吗?例如:

type F = fn(i32) -> i32;

// equivalent to |x| (x+1)*2
fn f: F = composite(add_by(1), mult_by(2));

// equivalent to |x| if x > 100 then {x} else {g(x*2)}
// note the recursion
fn g: F = branch(greater_than(100), identity, composite(mult_by(2), g));

我试图实现的递归不是一般的闭包(询问 here ),如果没有 hack 是不可能的,而只是一个具有更好语法(类型签名和定义)的普通函数。

type F 很复杂并且应该抽象使用时,这可能会有帮助,例如

type Parser<T> = fn(&str) -> Option<(T, &str)>

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com