小编Jam*_*ham的帖子

Ocaml - 生成所有char值的列表

我一直试图找到一种简单的方法来获取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)

有人能指出我最简单的方法吗?

谢谢!

ocaml

7
推荐指数
2
解决办法
241
查看次数

Haskell生成n个数的所有组合

我正在尝试生成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,我宁愿花时间去理解一些代码而不仅仅是使用其他人编写的包.不需要元组,列表也可以.

combinations haskell functional-programming

6
推荐指数
2
解决办法
1915
查看次数

Project Linker扩展不会安装在Visual Studio 2013 Pro上

我正在尝试在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)

xamarin visual-studio-2013

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

R Shiny DataTable选择了行颜色

我试图在我的闪亮应用程序中为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)

但我还没有到达那里 - 不幸的是上面的代码对背景颜色没有任何作用.如果有人能帮我解决那个很棒的整个解决方案.

javascript css r datatables shiny

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

llvm JIT将库添加到模块

我正在使用一个使用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)

c++ jit llvm

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

使用布局时Hugo页面无法呈现

我正在尝试将一个页面添加到我的Hugo站点,但是,我在使页面呈现内容时遇到了麻烦(使用布局时 - 我可以在没有布局的情况下渲染内容).更具体地说,我想在我的网站上添加一个简历页面.这是我做的:

  1. resume.md在我的内容目录中添加了一个文件,其中包含以下内容:
 ---
categories: ["resume"]
date: "2016-10-02T22:55:05-04:00"
tags: ["resume"]
title: "Resume"
showpagemeta: false
layout: "resume"
---
Run Code Online (Sandbox Code Playgroud)
  1. 我添加了一个布局文件themes/mytheme/layouts/_default/resume.html,其中包含以下内容:
<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>&nbsp;&nbsp;
          <strong><a href="{{ $el.url }}">{{ $el.name }}</a></strong>&nbsp;-&nbsp;{{ $el.description }}
          </h5>
      {{ end }}
      </div>
      </div>
  </div>
</section>
Run Code Online (Sandbox Code Playgroud)
  1. 我在下面添加了以下内容data/resume.yml:
name: Resume
source:
  - icon: foo
    url: bar
    name: baz
    description: foo bar baz …
Run Code Online (Sandbox Code Playgroud)

hugo

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

交换对象数组中的元素

我有一个对象数组,我想交换数组中两个元素的位置.我试过这个:

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了添加方法.

javascript arrays swap object

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