小编Dem*_*jon的帖子

游戏手中的指令长度LD A,(C)~Z80处理器

你好我正在为Game Boy写一个模拟器.

我用这个参考:Gameboy CPU(LR35902)指令集

该文件说明了操作码:

0xE2 LD (C),A
Run Code Online (Sandbox Code Playgroud)

0xF2 LD A,(C)
Run Code Online (Sandbox Code Playgroud)

长度为2.

游戏男孩CPU手册说分别,这些说明:

将地址$ FF00 +寄存器C的值放入A.

将A放入地址$ FF00 +寄存器C.

我认为它的长度为1,因为操作码是自给自足的,它不需要另外的值来解释.如果它的长度为2,那么第二个字节的目的是什么?

assembly z80 emulation gameboy

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

如何使用Clojure语言的子集在lambda演算中实现递归函数?

我正在用Greg Michaelson的"通过Lambda微积分进行功能编程简介"一书中学习lambda演算.

我仅使用该语言的一个子集在Clojure中实现示例.我只允许:

  • 符号
  • one-arg lambda函数
  • 功能应用
  • var定义为方便起见.

到目前为止,我有这些功能:

(def identity (fn [x] x))
(def self-application (fn [s] (s s)))

(def select-first (fn [first] (fn [second] first)))
(def select-second (fn [first] (fn [second] second)))
(def make-pair (fn [first] (fn [second] (fn [func] ((func first) second)))))    ;; def make-pair =  ?first.?second.?func.((func first) second)

(def cond make-pair)
(def True select-first)
(def False select-second)

(def zero identity)
(def succ (fn [n-1] (fn [s] ((s False) n-1))))
(def one (succ zero))
(def zero? (fn …
Run Code Online (Sandbox Code Playgroud)

recursion clojure lambda-calculus

8
推荐指数
2
解决办法
601
查看次数

为什么要使用阅读器宏#'?

我真的不明白这个宏是什么.

(def n 12)
=> #'lambda.core-test/n
#'n
=> #'lambda.core-test/n
(= #'n n)
=> false
(= #'n #'n)
=> true
(= 12 #'n)
=> false
Run Code Online (Sandbox Code Playgroud)

我读的地方,#'x是一样的(var x)所以

(var n)
=> #'lambda.core-test/n
(var-get (var n))
=> 12
Run Code Online (Sandbox Code Playgroud)

人们似乎在重新评估时使用它,符号的定义在REPL中不起作用.

这个宏到底是什么以及它与重新评估有什么关系?

clojure

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

为什么宏扩展不会扩展Clojure中的嵌套表单?

我不明白如何获得完整的宏扩展.

有了这段代码

(when true (when true true))
Run Code Online (Sandbox Code Playgroud)

我想得到完整的宏扩展

(if true (do (if true (do true)))
Run Code Online (Sandbox Code Playgroud)

但我不能

我理解macroexpansion-1将解决第一级扩展:

(macroexpand-1 '(when true (when true true)))

(if true (do (when true true)))
Run Code Online (Sandbox Code Playgroud)

但是为什么当我再次打电话时macroexpand-1(那应该做什么macroexpand):

(macroexpand-1 '(if true (do (when true true))))
Run Code Online (Sandbox Code Playgroud)

我得到了完全相同的结果?

(if true (do (when true true)))
Run Code Online (Sandbox Code Playgroud)

我期待完整的宏观扩张.

宏扩展只适用于顶级表单吗?

我知道命名空间中的一个expand-all函数clojure.walk,所以我认为macroexpand它不适用于嵌套结构.我对吗 ?

macros clojure

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

为什么将PDF转换为纯文本如此困难?

我需要将一些PDF转换回文本。我尝试了许多软性和在线工具,结果总是中等。

从技术上讲为什么如此困难?

pdf text-extraction

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