let

    12熱度

    1回答

    我想使用變量的值在同一個let語句中計算另一個變量的值。有沒有辦法做到這一點在Clojure沒有使用嵌套讓? 嵌套讓利的解決方案: (let [x 3] (let [y (+ 1 x)] y)) = 4 期望的解決方案: (let [x 3 y (+ 1 x)] y) = 4

    13熱度

    1回答

    我有一些不理解的行爲來自gnu clisp 假設我有一些代碼,如(let ((x "Hi!"))(print x))。 如果我從控制檯執行它(如,clisp fileName.lisp)我看到 嗨! 但是,當我從解釋器執行它,我看到這個文本兩次。爲什麼? 請幫助我。

    65熱度

    3回答

    我知道他們不同,因爲一個人設置*compile-path*而另一個沒有。不過,我需要幫助他們爲什麼不同。 let用給定的綁定創建一個新的作用域,但binding ...?

    2熱度

    1回答

    這是從這裏開始的後續工作 - >multiple-sorting-on-linq-nested-method。 基本上,在let memberName = ...它拋出這個異常Method 'System.String MemberName(Int32)' has no supported translation to SQL.,我沒有找出解決方案。 此外,BLLCmo和BLLConnect實際使

    5熱度

    3回答

    我剛開始使用Clojure玩,我寫了一個小腳本來幫助我瞭解一些功能。它是這樣開始的: (def *exprs-to-test* [ "(filter #(< % 3) '(1 2 3 4 3 2 1))" "(remove #(< % 3) '(1 2 3 4 3 2 1))" "(distinct '(1 2 3 4 3 2 1))" ]) 然後它通過*exp

    4熱度

    3回答

    我有一個bash腳本的問題。我必須使用運算符*來乘。相反,該腳本使用擴展名錯誤地使用腳本本身的名稱作爲運算符。我試着用單引號,但它不工作:(下面的代碼 #!/bin/bash -x # Bash script that calculates an arithmetic expression # NO PRECEDENCE FOR OPERATORS # Operators: + - *

    6熱度

    1回答

    在彼得·塞貝爾的實用的Common Lisp,他給出了這樣的例子: (do ((nums nil) (i 1 (1+ i))) ((> i 10) (nreverse nums)) (push i nums)) 我可以看到它是如何工作的,使用NUMS內循環,但不能給它一個臺階形。爲什麼你會把NUMS在變量定義,而不是這樣做: (let (nums) (do ((i 1 (+

    3熱度

    3回答

    考慮下面的實施的功能的計算階乘:[1] (define fac-tail (lambda (n) (define fac-tail-helper (lambda (n ac) (if (= 0 n) ac (fac-tail-helper (- n 1) (* n ac))))) (fac-tail-helper n

    35熱度

    4回答

    好的。我一直在修補Clojure,並且不斷遇到同樣的問題。讓我們的代碼,這個小片段: (let [x 128] (while (> x 1) (do (println x) (def x (/ x 2))))) 現在我希望這打印出序列與128開始像這樣: 128 64 32 16 8 4 2 相反,它是一個無限循環,反覆印刷128。很