我在使用arrayfrom std.array转换MapResult为特定的数组类型时遇到了一些麻烦.我的问题如下:
我有一个a对象数组,每个对象都有一个可公开访问的字段val.我想使用mapfrom std.algorithm来遍历a并返回val成员的所有值的数组.我的代码看起来像这样:
import std.algorithm:map;
import std.array:array;
//import for my object type, which I call Box here
ulong[] fun (Box[] a) {
return array!(ulong[])(map!(function ulong(Box x) {return x.val;})(a);
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试这样做时,编译器给我一个错误,说array不能从参数类型中推导出函数!(ulong[])(MapResult!(_funcliteral3,Box[])).这是否意味着MapResults不是范围,有没有办法得到我想要的东西?
我安装了Emacs(来自savannah repo的最新版本),而且我曾经package-install得到过auto-complete-20140414.2324.然后,我跟随(或尝试)此站点的说明.具体来说,我在笔记中添加了以下内容.emacs:
(add-to-list 'load-path "~/.emacs.d/elpa")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/elpa/auto-complete-20140414/dict")
(ac-config-default)
Run Code Online (Sandbox Code Playgroud)
我知道这些目录分别在哪里auto-complete-20140414和它的字典文件夹.但是,当我启动Emacs时,我收到以下警告:
File error: Cannot open load file, no such file or directory, auto-complete-config
Run Code Online (Sandbox Code Playgroud)
我发现的说明中没有任何内容,我不确定问题是什么.有人可以帮帮我吗?
我一直在寻找有效的Common Lisp优先级队列实现,到目前为止,我没有太多运气.由于我是Common Lisp的新手,每当我看到REPL发出巨大的警告/错误转储时,我都不确定该怎么做.我发现的所有优先级队列实现似乎都很老,这一点没有帮助.
有人可以向我推荐一个吗?
我使用 Emacs 作为我的 Common Lisp(准确地说是 SBCL)编辑器,并使用 SLIME。我按照此处的说明设置了 Quicklisp ,并检查它是否在 SLIME之外工作,一切都很好 - 我可以抓取并下载代码,包括它,一切。
现在,我尝试在 Emacs 中使用“编译/加载文件”命令来获取顶部包含以下内容的源文件:
(ql:quickload "priority-queue")
(defpackage :tournament
(:use :cl :priority-queue))
(in-package :tournament)
Run Code Online (Sandbox Code Playgroud)
现在,再一次,不是在 SLIME 中,这工作得很好。然而,在 SLIME 中,我收到以下形式的错误:
The name "PRIORITY-QUEUE" does not designate any package.
[Condition of type SB-KERNEL:SIMPLE-PACKAGE-ERROR]
Run Code Online (Sandbox Code Playgroud)
当然,还要加上回溯。我是否遗漏了一些特别的东西?我使用package-installEmacs 安装了 slime,并且在 .emacs 文件中包含以下代码来进行设置:
(setq inferior-lisp-program "/usr/local/bin/sbcl")
(require 'slime)
(slime-setup)
Run Code Online (Sandbox Code Playgroud) Vala是否有能力typedef在C或aliasD中做类似的事情?我检查了它的零星文档,但找不到与此相关的任何内容.
是否存在将无符号整数转换为二进制字符串的Phobos函数?我已经搜索过,但找不到 - 只是想确保我不是通过编写自己的方法来重新发明轮子.
我正在尝试定义一个值类型,它包含一个size_t或一个null(这就是我所说的'可能的类型').我想要做的是这样的事情(相关类型是Maybe!size_t:
Maybe!size_t something_which_could_fail (int foo) {
if (foo < 0) { return null;}
else { return foo;}
}
Run Code Online (Sandbox Code Playgroud)
我该如何实现这样的事情?理想情况下,我希望能够使它成为一个模板(所以我也可以有其他Maybe类型),并且可能如上所述从可能到非可能类型的转换(尽管如果不是这样,我不介意进行类型转换)可能).如果我可以做这样的事情也会很好:
Maybe!size_t a = 50;
Maybe!size_t b = null;
Run Code Online (Sandbox Code Playgroud) 我最近发现了(坦率地说是惊人的)并行性,可以从明智的使用中获得Control.Parallel.Strategies.我很好奇是否可以zip使用提供的工具编写类似并行版本的内容Control.Parallel.Strategies.我在想的是会有以下签名:
parZip :: Strategy (a, b) -> [a] -> [b] -> [(a,b)]
从概念上讲,parMap除了并行执行两个列表而不是一个列表之外,它的工作方式类似.我不确定如何写这个.有人能告诉我我会怎么做(如果可以的话)?
我在 Windows 7 上使用 DMD 编译器。我只是尝试创建一个全新的 D 文件并编译它,并且会从 DMD获得一个巨大的错误转储。最终,我将文件缩减为实际上只是模块声明 ( module tournament;),然后我从 DMD 收到以下错误:
OPTLINK : Warning 23: No Stack
OPTLINK : Warning 134: No Start Address
Run Code Online (Sandbox Code Playgroud)
现在,我完全不知道是什么导致了这种情况。有人可以帮助我吗?我使用的命令dmd tournament.d与正在编译的文件位于同一目录中。
我有以下简单的SDL代码:
#include <SDL.h>
#include <stdbool.h>
#include <stdio.h>
// helpers
bool init(SDL_Window **win, SDL_Surface **surf) {
int const width = 800;
int const height = 600;
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
fprintf(stderr, "Unable to init SDL: %s\n", SDL_GetError());
return false;
}
*win = SDL_CreateWindow("Picture test",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,
width, height, 0);
if (*win == NULL) {
fprintf(stderr,
"Unable to create window: %s\n",
SDL_GetError());
return false;
}
*surf = SDL_GetWindowSurface(*win);
return true;
}
bool load_media(SDL_Surface **surf) {
*surf = SDL_LoadBMP("./sample.bmp");
if (*surf == …Run Code Online (Sandbox Code Playgroud)