小编haw*_*eye的帖子

10个LISP原语类似于欧氏几何的5个公理?

LISP可以用十个原语构建:原语是:atom,quote,eq,car,cdr,cons,cond,lambda,label,apply.

显然,这些等同于欧氏几何的5个公理. http://hyperpolyglot.wikidot.com/lisp

谁能解释它们是如何相同的?

lisp primitive geometry axiom

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

有意识的Clojure符号名称限制还是继承?

在Common LISP中我可以做到:

(setf a1 'a)
(setf 1a 'b)
Run Code Online (Sandbox Code Playgroud)

在clojure中我可以做第一个(忽略setf和def工作不同的事实)

(def a1 'a)
Run Code Online (Sandbox Code Playgroud)

但是第二次我得到了一个错误

(def 1a 'b)

java.lang.NumberFormatException: Invalid number: 1a
Run Code Online (Sandbox Code Playgroud)

Clojure刚刚从Java继承了这个限制,还是故意的?(即你不能拥有带有这种风格的Java的类名,变量或方法名称 - 所以我认为它刚刚进行过.)

java jvm clojure

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

从JVM内部转储类路径上的类的方法?

我的代码失败了ClassNotFoundException.

我可以看到包含该类的jar文件肯定在命令提示符执行的类路径中.

有没有办法从JVM转储类路径上的类列表?(理想情况下是一些Java代码).

(我不想在目录中看到类,我想查看加载到JVM中的列表).

java jvm diagnostics classpath

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

comonad 的简洁总结。(其中 monad 是“不纯计算的类型”)

就简洁的总结而言 - 对Monad 的这种描述似乎获胜- 将它们描述为“不纯计算的类型”。

对 comonad 的等效简洁(一句话)描述是什么?

monads category-theory comonad

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

术语,例如Clojure中的codata

想象一下以下函数在Clojure中给出一个无限懒惰的fibonacci序列:

(def fib-seq
  (concat
   [0 1]
   ((fn rfib [a b]
        (lazy-cons (+ a b) (rfib b (+ a b)))) 0 1)))

user> (take 20 fib-seq)
(0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181)
Run Code Online (Sandbox Code Playgroud)

假设

  1. 我们将codata简洁定义视为"Codata是可能无限的价值所居住的类型".
  2. 这个Clojure示例不使用静态类型系统(来自core.typed),所以对codata的任何描述都是'工作定义'

我的问题是 - 上面函数的哪个部分是'codata'.这是匿名函数吗?它是懒惰的序列吗?

clojure infinite lazy-sequences codata

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

Scala中Clojure的并发原语的真正替代品

在Clojure中,我有四个原语来管理并发场景

  1. Refs - 管理对共享状态的协调,同步更改
  2. 原子 - 管理对共享状态的不协调的同步更改
  3. 代理 - 管理对共享状态的异步更改
  4. Vars - 管理线程本地状态

我的问题是 - Scala中是否有成熟的等价物?

假设 - 我将假设:

  • 演员是解决代理人所遇问题的另一种方式 - 但他们并不意味着直接替代
  • 我知道Scala中有代理库 - 我很想知道它们是否被认为是成熟的

concurrency scala clojure

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

在没有赋值的情况下编程可以在函数式编程的定义中考虑吗?

我知道函数式编程有几个定义.我认为这是一个模糊的类别.我的个人定义与" 参考透明度 " 接近.

这个问题不是'函数式编程的定义是什么?' .假设我们所知道的是函数式编程是一些不同的想法,包含一些不明确的界限.

现在,相当惊人的书籍计算机程序结构和解释 包含以下对函数式编程一词的引用.

正如我们在本书前两章所做的那样,不使用赋值的编程因此被称为函数式编程.

对我来说这看起来很奇怪.

我的问题是:在没有赋值的情况下编程可以在函数式编程的定义中考虑吗?

functional-programming sicp variable-assignment

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

是否有序数指标的Clojure功能?

我想要一个将填充此地图内容的函数:

{:1 "first" :2 "second" :3 "third" :4 "fourth" ... :100 "one-hundredth" ...}
Run Code Online (Sandbox Code Playgroud)

所以我可以做类似的事情

(println "This is the " (:3 {... :3 "third" ...}) " item in the sequence")
> This is the third item in the sequence
Run Code Online (Sandbox Code Playgroud)

是否有现有的Clojure库可以做到这一点?

我的问题是:序数指标是否有Clojure功能?

(如果有更好的方法来描述这种功能 - 请告诉我)

ordinals clojure ordinal ordinal-indicator

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

如何在 Clojure 中惯用地打印货币?

我正在使用以下内容:

(defn dollars [input] (str "$" (format "%.2f" input)))
Run Code Online (Sandbox Code Playgroud)

(这不做逗号)

但我想一定有一个使用的方法pprint/cl-format

我的问题是:如何在 Clojure 中惯用地打印货币?

currency clojure number-formatting

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

您如何解释像Ring和Yesod这样的纯功能Web服务器不是MVC?

传统上,人们将Web应用程序视为MVC - 它假设是面向对象的上下文.

函数式编程批评了这一点 - 并提供了一个使用高阶函数和不可变数据结构的模型.

我的问题是:你如何解释像Ring和Yesod这样的纯功能网络服务器不是MVC?

model-view-controller haskell functional-programming clojure yesod

4
推荐指数
2
解决办法
493
查看次数