我正在尝试创建Lwt的并发示例,并想出了这个小样本
let () =
Lwt_main.run (
let start = Unix.time () in
Lwt_io.open_file Lwt_io.Input "/dev/urandom" >>= fun data_source ->
Lwt_unix.mkdir "serial" 0o777 >>= fun () ->
Lwt_list.iter_p
(fun count ->
let count = string_of_int count in
Lwt_io.open_file
~flags:[Unix.O_RDWR; Unix.O_CREAT]
~perm:0o777
~mode:Lwt_io.Output ("serial/file"^ count ^ ".txt") >>= fun h ->
Lwt_io.read ~count:52428800
data_source >>= Lwt_io.write_line h)
[0;1;2;3;4;5;6;7;8;9] >>= fun () ->
let finished = Unix.time () in
Lwt_io.printlf "Execution time took %f seconds" (finished -. start))
Run Code Online (Sandbox Code Playgroud)
编辑:要求50GB它是:"然而这是非常缓慢,基本无用.内部绑定是否需要以某种方式强制?"
编辑:我最初写的要求50 GB,它从未完成,现在我有一个不同的问题,要求50MB,执行几乎是瞬间和du -sh报告只有80k的目录大小.
编辑:我也尝试使用相同的错误结果显式关闭文件句柄的代码. …
我正在探索一些冒险的想法.
TL:DR; gnumake能够使用可加载的模块,我试图使用该C屏障来使用OCaml但是在OCaml运行时初始化时遇到了麻烦.
我有这个OCaml代码:
(* This is speak_ocaml.ml *)
let do_speak () =
print_endline "This called from OCaml!!";
flush stdout;
"Some return value from OCaml"
let () =
Callback.register "speak" do_speak
Run Code Online (Sandbox Code Playgroud)
我也有这个C代码:(是的,需要使用额外的CAML宏,但这里不相关)
#include <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <gnumake.h>
#include <caml/mlvalues.h>
#include <caml/callback.h>
#include <caml/memory.h>
#include <caml/alloc.h>
int plugin_is_GPL_compatible;
char *ocaml_speaker(const char *func_name, int argc, char **argv)
{
char *answer =
String_val(caml_callback(*caml_named_value("speak"), Val_unit));
printf("Speaking and got: %s\n", answer);
char *buf = …Run Code Online (Sandbox Code Playgroud) 我创建了一个子树:
git subtree add --prefix etc/theos https://github.com/theos/theos.git master --squash
但这个回购通常是用--recursive旗帜克隆的,我注意到回购中应该存在的东西没有.
我没有看到--recursive子树的标志.我怎样才能让它发挥作用
据我所知,Python的规范版本是用C89编写的.我有兴趣可能稍后在Python上编写一些基于C的扩展,但是我对CI应该使用的版本(在Python文档中找不到)感到困惑.由于Python在C89中,我应该在C89中编码还是C11代码也可以工作?
我在Mac OS X上并使用sed进行就地替换.
基本上我有这个:
#!/bin/sh -e
PREFIX="$1"
sed -i bak -e 's|OCAMLDIR|"${PREFIX}"|g' ocamloptrev
Run Code Online (Sandbox Code Playgroud)
PREFIX路径在哪里,因此我正在使用|.
不幸的是,文件路径中的变量没有像我预期的那样得到评估,我最终得到:
OCAMLC="${PREFIX}"/bin/ocamlopt
Run Code Online (Sandbox Code Playgroud)
如何才能${PREFIX}对sed命令进行正确的评估?
我的代码如下,
prices = {'banana':'4', 'apple':'2', 'orange':'1.5', 'pear':'3'}
stock = {'banana':6, 'apple':0, 'orange':32, 'pear':15}
print(prices.keys)
print("price :" + str(prices.values))
print("stock :" + str(stock.values))
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我会吐出一个看起来好像我问的类型.是什么赋予了?
实际上,我的代码逻辑是错误的.
我希望代码吐出以下内容
关键价格:价值股票:价值
例如,这应该是它的样子
苹果价格:2库存:0
假设你有一个列表如
x = [('Edgar',), ('Robert',)]
什么是最有效的方法来获得字符串'Edgar'和'Robert'?
例如,不要真的需要x [0] [0].
我理解只声明但未初始化的Java对象默认为该null值,但为什么以下编译并打印出null?
String a;
System.out.println(a);
Run Code Online (Sandbox Code Playgroud) 说我有以下数据框,
A B
0 1986-87 232131
1 1987-88 564564
2 1988-89 123125
...
Run Code Online (Sandbox Code Playgroud)
等等.
我正试图重新索引<myFrame>.set_index('A'),以便我得到
B
1986-87 232131
1987-88 564564
1988-89 123125
Run Code Online (Sandbox Code Playgroud)
但我一直这样做:
B
A
1986-87 232131
1987-88 564564
1988-89 123125
Run Code Online (Sandbox Code Playgroud)
因为我试过其他的重建索引方法,这很烦人.我不确定A它实际上代表的是什么,因为它没有出现在<myFrame>.columns或者<myFrame>.index做什么<myFrame>['B'][0]给了我232131,所以A在这个重新索引的数据框架中是什么?如何从开头A正确索引或在错误的reindex中摆脱这个奇怪数据框.
说我们做了以下事情:(忽略如果这是愚蠢的,或者如果有更好的方法,这是一个简化的例子)
from itertools import izip
def check(someList):
for item in someList:
yield item[0]
for items in izip(check(someHugeList1), check(someHugeList2)):
//some logic
Run Code Online (Sandbox Code Playgroud)
由于check是一个生成器,使用izip是多余的?使用普通拉链会一样好吗?
python ×5
python-2.7 ×3
ocaml ×2
c ×1
generator ×1
git ×1
git-subtree ×1
gnu-make ×1
iterator ×1
java ×1
lwt ×1
pandas ×1
python-3.x ×1
sed ×1
shell ×1