相关疑难解决方法(0)

是否不可能对使用 Box、Rc 或 Arc 等智能指针的递归数据类型进行嵌套匹配?

我正在尝试将这个n符号方式计算x^x的th 导数的程序移植到 Rust。这似乎很容易:

use std::rc::Rc;

type Expr = Rc<Expr2>;

enum Expr2 {
    Int(i32),
    Var(String),
    Add(Expr, Expr),
    Mul(Expr, Expr),
    Pow(Expr, Expr),
    Ln(Expr),
}

use Expr2::*;

fn pown(a: i32, b: i32) -> i32 {
    match b {
        0 => 1,
        1 => a,
        n => {
            let b = pown(a, b / 2);
            let b2 = b * b;
            if n % 2 == 0 {
                b2
            } else {
                b2 * a
            }
        }
    } …
Run Code Online (Sandbox Code Playgroud)

rust

5
推荐指数
1
解决办法
1397
查看次数

标签 统计

rust ×1