我使用 gnu emacs 23.3.1 在 Windows 7 64 位上创建了一个普通文本文件。我可以使用其他程序(例如 LinqPad)编辑该文件(该文件恰好是 linqpad 脚本,扩展名 .linq)。一切都很好,直到我在文件中放入一个 Unicode 字符,例如希腊字母 \xce\xbb (lambda)。我可以在 emacs 中输入该字母并且它显示正确。但是emacs拒绝保存文件,报如下错误
\n\nFailure in loading charset map: 8859-7\nRun Code Online (Sandbox Code Playgroud)\n\n如果我在 LinqPad 中输入 \xce\xbb,emacs 将读取并显示它们,但不会保存文件。
\n\n我刚刚注意到 Notepad++ 对这个文件有其他意想不到的行为:它不显示 \xce\xbb\'s,而是显示成对的奇怪字符,例如 \xc3\x8e\xc2\xbb。这符合 unicode 字符成对存储的直觉(双关语)。所以看起来这是一种模棱两可的情况(在文本文件中存储 unicode),但看起来 linqPad 和 Visual Studio 也“做了显而易见的事情”。
\n\n我想使用 emacs,因为它是我拥有的唯一可以重排注释行序列的程序(// 之后的行,使用 Alt-Q 重排它们),并且我想在注释中使用希腊字符,因为我\' m 描述一个数学程序。
\n\n我将不胜感激您的建议和答案。
\n\n更新:其他问题中的一些建议说尝试 Mx describe-char,也绑定到 Cx = ;这两个都给了我与上面相同的失败消息,所以它们在正确的轨道上,只是没有答案。
\n我将边距,填充和边框设置为零,但我的画布和div周围仍有空间用于Firefox和Chrome.显然,我不明白如何在HTML中使用元素,并且会对建议和指针表示感谢.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Spacing Question</title>
<style type="text/css">
*
{
border: 0px;
margin: 0px;
padding: 0px;
}
canvas
{
width: 150px;
height: 150px;
}
body
{
background-color: Purple;
color: Silver;
}
</style>
<script>
function draw() {
var canvas = document.getElementById('canvas1');
if (canvas.getContext) {
var ctx = canvas.getContext('2d');
ctx.fillStyle = "rgb(200, 0, 0)";
ctx.fillRect(0, 0, 150, 150);
}
canvas = document.getElementById('canvas2');
if (canvas.getContext) {
var ctx = canvas.getContext('2d');
ctx.fillStyle = "rgb(0, 200, 0)";
ctx.fillRect(0, 0, …Run Code Online (Sandbox Code Playgroud) 是否有用于将库或JAR文件的内容转储到控制台的工具?
我正在寻找DUMPBIN /SYMBOLS适用于Windows本机模式库的Java 版本.使用C#和.NET的其余部分,有一些可视化工具,如.NET Reflector和Visual Studio中内置的对象浏览器.总而言之,我更喜欢命令行工具,但我会感激任何有效的:)
(我刚开始使用Windows上的Java和Scala.)
不确定这是一个MMA错误还是我做错了什么.考虑以下功能:
plotTrace[points_] :=
ListPlot[points,
Joined -> True,
PlotMarkers -> Table[i, {i, Length@points}]]
Run Code Online (Sandbox Code Playgroud)
现在考虑传递RandomReal生成的值.即,考虑一下
RandomReal[1, {nTraces, nPointsPerTrace, 2(*constant = nDimensions*)}].
Run Code Online (Sandbox Code Playgroud)
如果nTraces为1,则显示我试过的所有nPointsPerTrace值的PlotMarkers:
Manipulate[
plotTrace[RandomReal[1, {1, nPointsPerTrace, 2}]],
{nPointsPerTrace, 1, 20, 1}]
Run Code Online (Sandbox Code Playgroud)

如果nTraces为3或更大,则为我尝试的所有nPointsPerTrace值显示绘图标记
Manipulate[plotTrace[RandomReal[1, {nTraces, nPointsPerTrace, 2}]],
{nTraces, 3, 20, 1}, {nPointsPerTrace, 1, 20, 1}]
Run Code Online (Sandbox Code Playgroud)

但是如果nTraces正好是2,那么无论nPointsPerTrace的值如何,我都看不到绘图标记:
Manipulate[plotTrace[RandomReal[1, {2, nPointsPerTrace, 2}]],
{nPointsPerTrace, 1, 20, 1}]
Run Code Online (Sandbox Code Playgroud)

提示,线索,建议将不胜感激!
考虑
(defn f ^{:foo "bar"} [x] (* x x))
Run Code Online (Sandbox Code Playgroud)
和
(defn g #^{:foo "bar"} [x] (* x x))
Run Code Online (Sandbox Code Playgroud)
编译和运行.
我有两个问题:第一,为什么(meta f)而(meta g)只能产生nil?我原以为他们会生产{:foo "bar"}; 哇,我刚刚完全在元数据上吃午饭,我在那里定义了一些垃圾吗?
其次,元数据的两个合成元素之间有什么区别?看起来第二个是" 标记的文字 " ,与扩展数据表示法edn有关,但是如果没有更多的上下文或示例,我就不能完全了解它.
我一直在使用Clojure.logic 完成The Reasoned Schemer(TRS),并注意这里记录的差异.我到达了第3章第24帧,TRS报告了这一点
(run 5 [x]
(lolo '((a b) (c d) . x)))
Run Code Online (Sandbox Code Playgroud)
应该产生
'(()
(())
(() ())
(() () ())
(() () () ())
Run Code Online (Sandbox Code Playgroud)
现在,我实现了`lolo as
(defn lolo
"Succeeds if l is a list-of-lists."
[l]
(conde
((emptyo l) s#)
((fresh [a]
(firsto l a)
(listo a)) (fresh [d]
(resto l d)
(lolo d)))
(s# u#)))
Run Code Online (Sandbox Code Playgroud)
这会产生以下奇怪的结果:
'(()
(())
((_0))
(() ())
((_0 _1)))
Run Code Online (Sandbox Code Playgroud)
这基本上意味着我的lolo正在制作泄漏新变量的解决方案.如果我继续前进,试着看一个模式,我明白了
'(()
(())
((_0))
(() ())
((_0 _1))
(() …Run Code Online (Sandbox Code Playgroud) logic clojure logic-programming minikanren clojure-core.logic
我们经常测试哈希映射是否存在某个键,例如:data,通过测试对该键的值的试验检索nil,如
(defn test-my-hash-map [my-hash-map]
(if (:data my-hash-map) 42 "plugh!"))
Run Code Online (Sandbox Code Playgroud)
这会产生42任何包含:data具有任何值的键的哈希映射,但值除外nil.
(map test-my-hash-map
[{:data "Hello!"} ; ~~> 42
{:no-data "Yikes!"} ; ~~> "plugh!"
{:data nil} ; ~~> "plugh!", but I need it to say 42 :(
])
Run Code Online (Sandbox Code Playgroud)
我根本没有看到任何办法,这就搞乱了一些数据处理场景,我们从非Clojure源获取数据,其中缺少的密钥意味着"我没有那个密钥的数据"和带有nil值的键意味着"我在那里有数据,但无论出于何种原因我都无法给你." 我没有看到在Clojure代码中区分这些情况的方法.我非常优雅的解决方法是在切换到Clojure之前插入一个检测差异的Java填充程序并为特殊情况插入额外的列(键).
请考虑Common Lisp中的以下代码:
(defun range (max &key (min 0) (step 1))
(loop for n from min below max by step
collect n))
(reduce #'* (range 61 :min 1))
Run Code Online (Sandbox Code Playgroud)
这使得预期的bignum值为60 !,即
8320987112741390144276341183223364380754172606361245952449277696409600000000000000
Run Code Online (Sandbox Code Playgroud)
但是,以下代码(不包括我可以看到的任何浮点强制)产生浮点答案:
(defun fact (n)
(if (= 0 n)
1
(* n (fact (- n 1)))))
(fact 60)
8.32098711274139e+81
Run Code Online (Sandbox Code Playgroud)
问题是"为什么?" 并且"我如何fact在SBCL(Steel-Bank Common Lisp)中写出一个简单的递归,产生一个bignum结果?"
我想在一个原子中使用Clojure向量来建模一个有状态的FIFO(推到最后,从头开始弹出).试着
(def stack (atom []))
Run Code Online (Sandbox Code Playgroud)
那么push如下:
(swap! stack #(conj % 1))
(swap! stack #(conj % 2))
Run Code Online (Sandbox Code Playgroud)
期待
[1 2]
Run Code Online (Sandbox Code Playgroud)
但得到
(2 1)
Run Code Online (Sandbox Code Playgroud)
没什么大不了的,它只是意味着我必须反转(O(n))原子(持久列表)的值以获得顺序中的项目而不是我推送它们(例如,命令行的命令流到虚拟机)为了).不过,这是一个惊喜.
是否有一个clojure.core FIFO我可以装入一个原子?我想到了priority-map,但似乎有点矫枉过正.对于这些例子swap!在clojuredocs.org使用列表或地图,没有完全是我想要的.我通过谷歌搜索"FIFO Clojure"找到了大量的样本,但有些有点丰富,例如,clojure.core.cache(类似地图而不是矢量); amalloy的环缓冲区(外部依赖).寻找真正小而简单的东西.我没有在StackOverflow的自动建议中看到答案.
我重新安装了stack和ghci:
$ stack --version
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)Version 1.6.3, Git revision b27e629b8c4ce369e3b8273f04db193b060000db (5454 commits) x86_64 hpack-0.20.0
$ ghci --version
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)The Glorious Glasgow Haskell Compilation System, version 8.2.1
我做一个新项目:
$ stack new so-mve
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)Downloading template "new-template" to create project "so-mve" in so-mve/ ... blah blah blah ... Looking for .cabal or package.yaml files to use to init the project. Using cabal packages: - so-mve/ Selecting the best among 12 snapshots... * Matches lts-10.3 Selected resolver: lts-10.3 Initialising configuration using resolver: lts-10.3 Total number of …