小编Koz*_*oss的帖子

编写可以从命令行输入管道的D脚本

我目前正在使用D作为各种命令行脚本的脚本语言来自动执行枯燥的任务.我希望能够在D中编写带有管道输入的脚本,但是当前,我没有取得多大成功,因为我正在管道它似乎并没有出现在参数列表中!

例如,假设我有一个脚本foo.exe,它意味着只需要一个输入.我的想法是,我可以写,例如:

echo bar | foo
Run Code Online (Sandbox Code Playgroud)

并且foo在条形图打印到屏幕后使用输入栏运行.但是,每次我尝试这个时,我似乎都没有在args数组中有任何参数foo(只是foo本身).我在这里做的不是什么?

windows shell scripting command-line d

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

D:不清楚如何使用std.container结构

我正在尝试学习如何使用std.container中可用的各种容器结构,并且我无法理解如何执行以下操作:

1)如何创建空容器?例如,假设我有一个用户定义的类Foo,并且想要创建一个应该包含Foo对象的空DList .我应该使用什么语法?

2)假设a并且b都是DList!int.我试着打电话a ~ b,编译器告诉我,我不能.但是,我可以看到DList那个运算符超载了.我错过了什么?

containers d

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

SWI-Prolog和文件扩展名:为什么swipl不会识别带扩展名的文件?

我正在使用SWI-Prolog的命令行解释器swipl.我在包含文件的目录中运行它test.pro,并尝试调用

[test.pro].

这导致swipl喷出

ERROR: Syntax error: Operator expected ERROR: [test ERROR: ** here ** ERROR: .pro] .

但是,如果我删除扩展名,它可以正常工作.有没有办法将文件名传递给swipl加载哪些扩展名不会导致此错误?事实上,我想知道是什么导致了这个错误,因为SWI-Prolog的网站不是很有帮助.

prolog swi-prolog

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

Quicklisp:使用加载的库

我已经设置了Quicklisp以便在SBCL运行时运行,并将以下行添加到我正在尝试使用该priority-queue库的文件顶部(正如我之前的问题的回答中所建议的,Common Lisp的优先级队列?).但是,当我尝试使用它时,我从SBCL收到错误,说priority-queue没有定义函数!我错过了什么?

作为参考,我试着写这样的东西:

(ql:quickload "priority-queue")

(defparameter *heap* (make-pqueue #'<))
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,说make-pqueue没有定义.

common-lisp quicklisp

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

通过Emacs脱机查看Common Lisp HyperSpec

我正在使用Emacs作为我的Lisp环境,并希望能够离线访问Common Lisp HyperSpec.我下载了它,并将文件夹放入我的emacs.d目录.然后我将以下代码放入我的.emacs:

(global-set-key [(f2)] 'slime-hyperspec-lookup) 
(setq common-lisp-hyperspec-root "/.emacs.d/HyperSpec/")
Run Code Online (Sandbox Code Playgroud)

但是,每当我尝试在其中搜索某些内容时,我的查询最终都会出现格式错误.具体来说,假设我搜索dotimes; 被转储到我的浏览器的是file:///.emacs.d/HyperSpec/Body/m_dolist.htm,它与HyperSpec文件夹中的目录结构不匹配,导致查询失败.相反,HyperSpec查找格式适合Web版本(在这种情况下,它可以正常工作).

我有什么方法可以解决这个问题,如果是这样,怎么办?我基本上只是希望能够在我不在线时查找HyperSpec.

common-lisp slime

3
推荐指数
2
解决办法
1551
查看次数

D:来自std.container.BinaryHeap的奇怪行为以及用于比较的自定义函数

我已经为一堆Node*s 编写了以下代码,这些代码可以在模块中找到node:

import std.exception, std.container;

public import node;

alias NodeArray = Array!(const (Node)*);
alias NodeHeap = BinaryHeap!(NodeArray, cmp_node_ptr);

auto make_heap() {
  return new NodeHeap(NodeArray(cast(const(Node)*)[]));
}

void insert(NodeHeap* heap, in Node* u) {
  enforce(heap && u);
  heap.insert(u);
}

pure bool cmp_node_ptr(in Node* a, in Node* b) {
  enforce(a && b);
  return (a.val > b.val);
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试在其上运行以下单元测试,其中make_leaf返回Node*初始化的给定参数:

unittest {
  auto u = make_leaf(10);
  auto heap = make_heap();
  insert(heap, u); //bad things happen here
  assert(heap.front …
Run Code Online (Sandbox Code Playgroud)

struct pointers d binary-heap

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

在Emacs中使用Kawa

在Emacs中有Kawa的任何模式或资源吗?我已经检查过,但我找不到任何东西.大多数情况下,我希望能够在Emacs中运行Kawa REPL,但某种完成/语法检查也会很棒.

emacs kawa

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

SLIME无法从Emacs加载

我最近package-list-packages在Emacs中更新了SLIME .但是,当我尝试使用它时M-x slime,我得到这个:

(progn (load "/home/koz/.emacs.d/elpa/slime-20140913.730/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.3081"))

* 
; loading #P"/home/koz/.emacs.d/elpa/slime-20140913.730/swank-loader.lisp"
;; 
;; Error while compiling /home/koz/.emacs.d/elpa/slime-20140913.730/swank/backend.lisp:
;;   Failed to find the TRUENAME of /home/koz/.emacs.d/elpa/slime-20140913.730/swank/backend.lisp:
;;     No such file or directory
;; Aborting.
;; * 
Run Code Online (Sandbox Code Playgroud)

之后我仍然有一个REPL,但我认为这很奇怪,我想知道发生了什么以及为什么.

emacs sbcl common-lisp slime

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

D:模板约束以显示给定类型是否具有可比性

我如何为以下结构编写模板约束

struct Foo (T, U) {
}
Run Code Online (Sandbox Code Playgroud)

以表明双方TU必须使用具有可比性<?我的意思是两个Ts可以比较,<两个Us可以比较<- a T和a U可以是无法比拟的.

templates d type-constraints

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

Flycheck - 永久禁用Clang作为检查*

我使用Flycheck来检查C文件,并为GCC提供了相当精细的变量设置,以使其正常工作.但是,由于我的系统上有Clang(由于与代码无关的原因),Flycheck总是假设这是我想要使用的,迫使我一直手动切换检查器.

我试图寻找一种永久禁用Clang作为检查器的方法,但我已经空了.帮助将不胜感激.

emacs clang flycheck

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