let

    1热度

    1回答

    例如,我要声明 let len, (*mutable*) i = if s.Length >= 2 && s.[0] = '0' && (s.[1] = 'x' || s.[1] = 'X') then (s.Length - 2, 2) else (s.Length, 0) 不断结合LEN和可变我,这可能吗? 补充: 我会用引用然后 let len

    6热度

    1回答

    如果你有一个依赖于其他函数的递归函数,那么实现它的首选方法是什么? 1)递归函数 let doSomething n = ... let rec doSomethingElse x = match x with | yourDone -> ... | yourNotDone -> doSomethingElse (doSomething x) 2)的递归函数 l

    4热度

    2回答

    (let ((x 2) (y 3) (let ((x 7) (z (+ x y))) (* z x))) 通过上面的代码,为什么答案是35,不是70?在第二个let中,x是7,所以z应该是7 + 3 = 10,然后结果应该是7 * 10 = 70.我知道得到另一个就是让*这个2之间的混淆。谷歌。我已经谷歌,但不能得到它。

    0热度

    2回答

    (define (rec base height) (let ((product (* base height))(half 0.5)) (let ((sum (* product half))) (display "Area is") (display sum)))) let: expected only one expression after t

    4热度

    3回答

    我的问题是接下来,我尝试使用let将这个瓦尔 ,如果我做ASIGN值来评估一些增值经销商列表(def a (list * 'x 'y))和(let [x 3 y 3] (eval a))我有一个 CompilerException了java.lang.RuntimeException:无法解析符号:X在这种情况下,编译:(NO_SOURCE_PATH:6) ,但如果我跑 (def x 4) (de

    9热度

    2回答

    有喜欢 let() = print_string "something" in fn 在一些OCaml的代码 代码。 这是什么意思? “()”有特殊含义吗?或者是相同的意思 print_string "something"; fn

    12热度

    2回答

    我在计算如何使用“let”表单时遇到了一些麻烦。在下面的例子中,我想在本地绑定值“cols”,以便稍后在函数中使用它。然而,我注意到的是,如果我使用“let”,函数sel-opt-tmp将返回一个零值而不是列表。 (defn sel-opt-tmp [] (let [cols "test"])) (prn (sel-opt-tmp)) *上面的代码返回一个零值。 我明白,“让”只

    13热度

    4回答

    在let形式(Clojure的在这里)我可以做这样的事情 (let [[u s v] (svd A)] (do-something-with u v)) 其中svd返回长度为三的名单。这是一个很自然的那种做事情,所以为什么不说我们没有,我们有 (def [u s v] (svd A)) 及其各种概括为def形式的默认行为?我不明白这会如何影响def已经在做的任何事情。能理解Lis

    10热度

    3回答

    我今天在Haskell遇到了一件令人沮丧的东西。 这里发生了什么: 我写在ghci中的功能,并给它一个类型签名 ghci的抱怨型 我删除了类型签名 ghci的接受功能 我检查了推断类型 推断类型与我试图给它的类型完全相同 我很心疼 我发现我可以重现该问题在任何松懈表达 咬牙切齿的;决定在SO 尝试与专家进行磋商,以与类型签名定义函数: Prelude Control.Monad> let myFi

    70热度

    2回答

    Java编译器似乎支持表达式com.sun.tools.javac.tree.*(查找LetExpr)。在JCTree 一个评论甚至提到了一些语法 (let int x = 3; in x+2) 这当然不是由语言的语法接受和早期编译器相拒绝。 我想知道这个构造的起源,这是我以前从未见过的。 由javac内部使用还是由其他工具合成?它可能仅仅是从Java早期的语言特征中看不到光的一个神器? 今天