您好,我遇到过ghc优化标志的有线行为.优化标志似乎改变了评估方式.综上所述,
primes并isPrime通过引用彼此定义的代码.ghc -O3,但我不能runhaskell用来得到结果.这花费了太多时间.ghc -O1,结果立即出现-O3,但编译的可执行文件ghc -O0无法在一分钟内计算结果.Debug.Trace.trace发现,primes每次isPrime调用时都会从它的开始进行评估.primes,并isPrime到另一个文件Prime.hs.在主文件中,我导入了Prime库.不幸的是,编译的可执行文件ghc -O3不会在一分钟内计算结果.这是描述.请参阅以下代码.
main :: IO ()
main = print $ length $ filter isPrime [100000..1000000]
primes :: Integral a => [a]
primes = 2 : filter isPrime [3,5..]
isPrime :: Integral a => a -> Bool
isPrime n = n > 1 && …Run Code Online (Sandbox Code Playgroud) 我想从Google Chrome扩展程序中完全保存wabpage.我添加了"downloads", "<all_urls>"权限并确认以下代码将Google页面保存到google.html.
chrome.downloads.download(
{ url: "http://www.google.com",
filename: "google.html" },
function (x) { console.log(x); })
Run Code Online (Sandbox Code Playgroud)
但是,此代码仅保存html文件.样式表,脚本和图像不会保存.我想完全保存网页,好像我用对话框保存页面,选择Format: Webpage, Complete.
我调查了文件,但找不到办法.
所以我的问题是:如何使用谷歌浏览器的api完全从扩展程序下载网页?
在阅读command的源代码时cat,我发现catcommand支持从socket读取。您可以在http://src.gnu-darwin.org/src/bin/cat/cat.c.html查看源代码。但我从未在套接字上使用此命令:只是快速查看文件或连接多个文件。+ 套接字可以做什么cat?cat您能举一个使用从套接字读取命令的有趣示例吗?谢谢。
我想转换
Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.He...
Run Code Online (Sandbox Code Playgroud)
至
Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.He
llo.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hell
o.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.
Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.Hello.He
...,
Run Code Online (Sandbox Code Playgroud)
其中宽度为80个字符.
我首先想到我可以使用sed.(让我用5字符解释而不是80字符来澄清.)
echo "longlonglonglonglonglonglonglonglonglonglonglong" | sed 's/\(.\{5\}\)/\1\'$'\n/g'
Run Code Online (Sandbox Code Playgroud)
给
longl
onglo
nglon
glong
longl
onglo
nglon
glong
longl
ong
Run Code Online (Sandbox Code Playgroud)
我想要的.但是,当输入字符串永远持续时,我无法使用这种方式.
while true; do; echo -n "Hello."; done | sed 's/\(.\{5\}\)/\1\'$'\n/g'
Run Code Online (Sandbox Code Playgroud)
上面的命令不起作用.我也试过用perl,但徒劳无功.(perl -pe 's/(.{5})/$1\n/g')所以我放弃了在unix命令中解决并在C中编写了一个小程序.
#include <stdio.h>
int main(int argc, char *argv[]) {
int i = 0, ch;
while ((ch = fgetc(stdin)) != EOF) {
putchar((char)ch);
i += 1;
if (ch == '\n') {
i …Run Code Online (Sandbox Code Playgroud) 考虑以下 Makefile。
$(shell touch /tmp/example.txt)
FILE := /tmp/example.txt
CONTENTS = $(shell cat $(FILE); bash -c 'echo [debugging id: $$RANDOM]')
.PHONY: all
all:
@cat $(FILE)
@echo '$$(CONTENTS):' $(CONTENTS)
bash -c 'echo file-contents-$$RANDOM' > $(FILE)
@cat $(FILE)
@echo '$$(CONTENTS):' $(CONTENTS) # This line outputs the old contents. Why?
Run Code Online (Sandbox Code Playgroud)
它打印文件的内容,用新内容覆盖并再次打印内容。它显示为(在第二次拍摄之后make):
file-contents-1543
$(CONTENTS): file-contents-1543 [debugging id: 15172]
bash -c 'echo file-contents-$RANDOM' > /tmp/example.txt
file-contents-22441
$(CONTENTS): file-contents-1543 [debugging id: 151]
Run Code Online (Sandbox Code Playgroud)
旧内容file-contents-1543和新内容file-contents-22441(数字是随机的),但最后一行echo $(CONTENTS)不打印新内容。我认为该命令实际上在调试 id 显示时被调用了两次,但在将新内容写入文件之前,lazy 变量中的 shell 函数似乎已被执行。 …