我一直试图找到一种简单的方法来获取OCaml中所有可能的char值列表(即['\ _00';'\ 001'; ...;'\ 255']).
在Python中,我会做一个简单的列表理解,如:
[chr(x) for x in range(255)]
Run Code Online (Sandbox Code Playgroud)
但是,我目前在OCaml中所知道的方式要简单得多:
all_chrs = let rec up_to = fun lst max ->
match lst with
| [] -> failwith "Invalid_input"
| hd::tl ->
let up = hd + 1 in
if up = max then up::lst
else up_to (up::lst) max
in let all_ascii = up_to [0] 255
in List.map Char.chr all_ascii
Run Code Online (Sandbox Code Playgroud)
有人能指出我最简单的方法吗?
谢谢!
我正在尝试生成n个数字的所有可能组合.例如,如果n = 3,我会想要以下组合:
(0,0,0), (0,0,1), (0,0,2)... (0,0,9), (0,1,0)... (9,9,9).
Run Code Online (Sandbox Code Playgroud)
这篇文章描述了如何在n = 3时这样做:
[(a,b,c) | m <- [0..9], a <- [0..m], b <- [0..m], c <- [0..m] ]
Run Code Online (Sandbox Code Playgroud)
或者为了避免重复(即同一个n-uple的多个副本):
let l = 9; in [(a,b,c) | m <- [0..3*l],
a <- [0..l], b <- [0..l], c <- [0..l],
a + b + c == m ]
Run Code Online (Sandbox Code Playgroud)
然而,遵循相同的模式将很快变得非常愚蠢n > 3.说我想找到所有的组合:(a, b, c, d, e, f, g, h, i, j)等等
任何人都能指出我在正确的方向吗?理想情况下,我宁愿不使用内置功能,因为我正在尝试学习Haskell,我宁愿花时间去理解一些代码而不仅仅是使用其他人编写的包.不需要元组,列表也可以.
我正在尝试在Visual Studio中为Xamarin做一个教程,可以在这里找到,它说要在完成本教程的过程中需要Project Linker扩展.不幸的是,当我下载并尝试安装它时,我收到以下错误:
安装失败
安装无法将扩展安装到所有选定的产品.有关更多信息,请单击对话框底部的安装日志链接.
此扩展程序无法安装在任何当前安装的产品上.
安装日志如下:
2014-01-03 12:18:24 PM - Microsoft VSIX Installer
2014-01-03 12:18:24 PM - -------------------------------------------
2014-01-03 12:18:24 PM - Initializing Install...
2014-01-03 12:18:24 PM - Extension Details...
2014-01-03 12:18:24 PM - Identifier : 777046b2-7ee9-4e1e-8c34-5f2424eaabf1
2014-01-03 12:18:24 PM - Name : Project Linker 2012
2014-01-03 12:18:24 PM - Author : Jonkers
2014-01-03 12:18:24 PM - Version : 1.5
2014-01-03 12:18:24 PM - Description : This tool helps to automatically create and maintain links …Run Code Online (Sandbox Code Playgroud) 我试图在我的闪亮应用程序中为DataTable中的选定行设置突出显示颜色.基本上我希望所选行的颜色是红色而不是蓝色.但是,我对JavaScript并不熟悉所以我正在努力编写适当的回调(至少我认为这是问题).这是我到目前为止所尝试的:
# ui.R
library(shiny)
fluidPage(
title = 'DataTables Test',
DT::dataTableOutput('table')
)
# server.R
library(shiny)
library(DT)
# render the table
output$table = renderDataTable(datatable(head(iris, 20),
options = list(
initComplete = JS(
"function(settings, json) {",
"var rows = $(this.api().table().rows());",
"for (var i = 0; i < rows.length; i++){ ",
"var row = rows[i];",
"row.css({'background-color': '#000', 'color': '#f00'})",
"}",
"}")
)))
})
Run Code Online (Sandbox Code Playgroud)
如您所见,到目前为止,我只想弄清楚如何更改行颜色.一旦我弄明白这一点,我就会尝试将css更改为:
"tr.selected td, table.dataTable td.selected { background-color: #f00}"
Run Code Online (Sandbox Code Playgroud)
但我还没有到达那里 - 不幸的是上面的代码对背景颜色没有任何作用.如果有人能帮我解决那个很棒的整个解决方案.
我正在使用一个使用LLVM的JIT.该语言有一个用C++编写的小运行时,我使用clang编译成LLVM IR
clang++ runtime.cu --cuda-gpu-arch=sm_50 -c -emit-llvm
Run Code Online (Sandbox Code Playgroud)
然后加载*.bc文件,生成额外的IR,并动态执行.CUDA的原因是我想在运行时添加一些GPU加速.但是,这会引入CUDA特定的外部函数,这些函数会产生以下错误:
LLVM ERROR: Program used external function 'cudaSetupArgument' which could not be resolved!
Run Code Online (Sandbox Code Playgroud)
正如这里所讨论的,这通常通过在编译程序时包含适当的库来解决:
g++ main.c cmal.o -L/usr/local/cuda/lib64 -lcudart
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何使用LLVM在JITed模块中包含库.我发现这个问题表明以前可以将库添加到JIT中的模块,如下所示:
[your module]->addLibrary("m");
Run Code Online (Sandbox Code Playgroud)
不幸的是,这已被弃用.现在有人能告诉我最好的方法吗?如果我需要提供更多信息,请告诉我们!
此外,我不确定这是否是将GPU卸载合并到我的JIT中的最佳方式,所以如果有人能指出我更好的方法那么请做:)
谢谢!
编辑:我正在使用LLVM 5.0和我正在使用的JIT引擎llvm/ExecutionEngine/ExecutionEngine.h,更具体地说,我创建它像这样:
EngineBuilder EB(std::move(module));
ExecutionEngine *EE = EB.create(targetMachine);
Run Code Online (Sandbox Code Playgroud) 我正在尝试将一个页面添加到我的Hugo站点,但是,我在使页面呈现内容时遇到了麻烦(使用布局时 - 我可以在没有布局的情况下渲染内容).更具体地说,我想在我的网站上添加一个简历页面.这是我做的:
resume.md在我的内容目录中添加了一个文件,其中包含以下内容:Run Code Online (Sandbox Code Playgroud)--- categories: ["resume"] date: "2016-10-02T22:55:05-04:00" tags: ["resume"] title: "Resume" showpagemeta: false layout: "resume" ---
themes/mytheme/layouts/_default/resume.html,其中包含以下内容: Run Code Online (Sandbox Code Playgroud)<section id="resume"> <div class="container"> <h3>{{ .Site.Data.resume.name }}</h3> <div class="panel panel-default"> <div class="panel-body"> {{ range $i, $el := .Site.Data.resume.source }} <h5> <i class="{{ .icon }}"></i> <strong><a href="{{ $el.url }}">{{ $el.name }}</a></strong> - {{ $el.description }} </h5> {{ end }} </div> </div> </div> </section>
data/resume.yml:Run Code Online (Sandbox Code Playgroud)name: Resume source: - icon: foo url: bar name: baz description: foo bar baz …
我有一个对象数组,我想交换数组中两个元素的位置.我试过这个:
var tempObject = array.splice(index, 1, array[index + 1]);
array.splice(index+1, 1, tempObject);
Run Code Online (Sandbox Code Playgroud)
但它似乎没有正常工作,因为它会导致一些奇怪的错误.例如,我无法使用该对象的方法.调用会array[x].getName导致错误.
任何身体都可以在这里伸出援助之手吗?
为了防止它变得很重要,我已经习惯object.prototype了添加方法.