小编Lio*_*let的帖子

如何在 Clojure 中计算列表交集?

我需要一个函数,它接受两个列表,例如 (1 2 3 4) 和 (2 3 4 5),并返回它们的交集,即 (2 3 4)。我写了一个可以运行的函数,但它有 8 行长,而且非常“不像 Clojure”,因为我对这项运动还很陌生。我知道那里有一些优雅的东西,甚至可能是一个 Clojure 关键字可以解决整个问题。比较只需在顶层进行,而不是递归整个列表结构。先感谢您。

intersection list clojure

3
推荐指数
1
解决办法
712
查看次数

“winmdexp.exe”退出,代码为-532462766

场景:Visual Studio 2013 Ultimate 版本 4。Windows 8.1 通用项目。C#。我需要一个 Windows 运行时组件来定期更新我的动态磁贴。解决方案构建以错误消息结束:

“winmdexp.exe”退出,代码为-532462766

在过去的 2-1/2 天里我一直在寻找线索。没有什么比这更接近的了。此解决方案中的三个项目中的任何代码都没有语法错误。至少有人能给我指出一个方向吗?

c# windows-runtime windows-phone-8.1

2
推荐指数
1
解决办法
2311
查看次数

原子在 Maclisp 中具有属性。如何在 Clojure 中做同样的事情?

引自 (1975) Maclisp 参考手册:“每个原子符号都与一个属性列表相关联,可以使用plist函数检索它。”

Maclisp 属性列表是“指标/值”对的列表。在 Maclisp 中,

(get x y)
Run Code Online (Sandbox Code Playgroud)

得到 x 的 y 属性。

(putprop x 'banana y)
Run Code Online (Sandbox Code Playgroud)

将 x 的 y 属性设置为香蕉。

我的任务是将许多旧的 Maclisp 代码转换为 Clojure。我是 Clojure 的新手,但随着这个项目的展开,我不会太久。在我跑去自己写一些东西之前,我想知道 Clojure 是否已经有“属性列表”功能?或者接近的东西?

如果没有,组装的 Clojure 众神会让我做什么来实现这样的功能?请记住,Maclisp 中的每个原子符号都可以但不必具有属性列表。谢谢你。

clojure property-list maclisp

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

在 Clojure 中循环/返回。什么是“尾巴”位置?

我只是在 REPL 上构建一个函数并遇到了这个问题。
我定义了一个符号 S 并给它一个值:

(def S '(FRUIT COLORS (YELLOW GREEN) SKIN (EDIBLE INEDIBLE)))
Run Code Online (Sandbox Code Playgroud)

我最终想要一个函数,它接受参数列表中的第一个条目以及任何和所有后续参数对,并将它们应用于第一个条目。我的编码从来没有那么远。我想使用循环/recur 构造(我应该这样做吗?),这是我在 REPL 中得到的程度:

(loop [KV# (rest S)]
    (if (empty? KV#)
        nil
        (
            (pprint S, (first KV#), (second KV#))
            (recur (rest (rest KV#)))
        )
    )
)
Run Code Online (Sandbox Code Playgroud)

我得到一个“只能从尾部位置重复”编译器错误。
在 Stack Overflow 上到处找了包括 7 或 8 篇文章之后,我只能问:嗯?!
我是新手。如果 recur 不在尾部位置,有人可以向我解释为什么吗?
与'if'语句语法有关吗?啊!Clojure 不适合弱者!谢谢你。

clojure intellij-idea cursive

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

在不触及元数据的情况下更改 Clojure var 的值

我一直在假设 var 的元数据是“稳定的”,也就是说,我可以在不更改 var 元数据的情况下更改 var 的值。现在我发现我的理解有问题。代码:

(def ^{:Metadata "metaA"} A 1)  ;; Define A with value 1 and metadata.
=> #'thic.core/A
(def ^{:Metadata "metaB"} B 2)  ;; Define B with value 2 and metadata.
=> #'thic.core/B
A                               ;; A's value is 1.
=> 1
B                               ;; B's value is 2.
=> 2
(meta (var A))
=>
{:Metadata "metaA",             ;; A has the defined metadata.
 :line 1,
 :column 1,
 :file "C:\\Users\\Joe User\\AppData\\Local\\Temp\\form-init2487748963910096550.clj",
 :name A,
 :ns #object[clojure.lang.Namespace 0x147c445 "thic.core"]}
(meta (var …
Run Code Online (Sandbox Code Playgroud)

metadata clojure

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