我正在阅读System V应用程序二进制接口,有一部分是我无法理解的.
首先,该文件指出
没有尝试为C以外的语言指定ABI
(第10页).
稍后,在第20页,数组分为MEMORY,POINTER等:
聚合(结构和数组)和联合类型的分类如下:
...
然后使用分类来定义调用约定 - 它们的值和边界如何传递给函数并从函数返回.如果我正确读取算法,则可以将数组分类为INTEGER,MEMORY或SSE.
但是在C语言中,数组总是作为指针传递和返回.那么为什么对数组进行分类以及在哪种情况下数组类很重要呢?
正如此处所解释的,当调用内部或原始函数时,其最后一个参数是rho执行调用的环境。
另一方面,我们有R_GlobalContext->sysparent\xe2\x80\x94 这是environment()R 中返回的内容。该sysparent字段被描述为
/* Evaluation Context Structure */\ntypedef struct RCNTXT {\n ...\n SEXP sysparent; /* environment the closure was called from */\n ...\n}\nRun Code Online (Sandbox Code Playgroud)\n\n看来rho和的意思sysparent是一样的。
因此,我的问题是:
\n\nrho参数呢?.Call如何调用内部 R 函数?rhoGoogle阅读器不会显示我的Atom Feed http://feeds.feedburner.com/CartesianClosedComic的图标.
根据互联网上的各种建议,这是我尝试的内容:
<icon>指向png图标的元素.(我也在.ico那里尝试了一个图标.)IMO,这本身应该足够了,但由于某种原因它不是.<link rel="shortcut icon" type="image/x-icon" />指向.ico图标的元素.<link rel="alternate" type="text/html" />指向具有favicon的网页的元素.以上都没有帮助.
我还发现了一个假设,即在域的根路径下应该有一个favicon(类似的东西http://mydomain.com/favicon.ico),但这对我来说不是一个选择.
以下是标题大小bootstrap.css:
h1 {
font-size: 38.5px;
}
h2 {
font-size: 31.5px;
}
h3 {
font-size: 24.5px;
}
Run Code Online (Sandbox Code Playgroud)
我很惊讶这些尺寸是分数(半整数),这表明它们的精度至少0.25px(小于1%).
网页设计师如何达到这样的尺寸?他们是通过一些科学过程获得的,也许是一些计算?或者人们只是盯着他们的网站,玩大小直到它感觉正确?设计师如何说服他的队友真的应该31.5px而不仅仅是31px?
我需要读取以 iso-8859-1 编码的文件。
出于某种原因,我无法使编码层(如 中所述PerlIO::encoding)工作。这是我正在做的一个最小的例子。
test.txt 包含以 iso-8859-1 编码的单个英镑符号。
% iconv -f iso-8859-1 test.txt
£
% hexdump -C test.txt
00000000 a3 0a |..|
00000002
Run Code Online (Sandbox Code Playgroud)
我的 Perl 脚本:
#!/bin/perl
use warnings;
use strict;
open my $f, "<:encoding(iso-8859-1)", $ARGV[0] or die qq{Could not open $ARGV[0]: $!};
while (<$f>) {
print;
}
Run Code Online (Sandbox Code Playgroud)
结果:
% ./script.pl test.txt | hexdump -C
00000000 a3 0a |..|
00000002
Run Code Online (Sandbox Code Playgroud)
所以脚本打印它读取的确切字节序列,不执行任何转换。
该函数应采用列表xs并构造一个平衡的二叉搜索树,其中包含与xs完全相同的元素集.
结果应该是这样的:(如果列表是[1,2,3,4,5,6,7,8])
节点(节点(节点(节点空1空)2空)4(节点空4空))5(节点(节点空6空)7(节点空8空))
也就是说树应该是这样的:
5
/ \
3 7
/ \ / \
2 4 6 8
/
1
Run Code Online (Sandbox Code Playgroud)
而不是这个:
5
/ \
4 6
/ \
3 7
/ \
2 8
/
1
Run Code Online (Sandbox Code Playgroud)
谁能告诉我怎么做?我发现我可以做第二棵不完美平衡的树,但不知道如何做第一棵树.
我感谢任何帮助!! 先感谢您!
我的一个测试失败了,我想使用git bisect来跟踪它.
为此,我需要从命令行运行devtools::test,使进程退出代码指示是否所有测试都已通过.
我怎么做?
我想弄清楚什么是错的.似乎类型有问题,但单独使用相同的表达式可以正常工作.
这是代码:
a = [9, 4, 12, 0, -6, 16] :: [Int]
qsort:: [Int] -> [Int]
qsort [] = []
qsort [x] = [x]
qsort xs = (qsort l)++(qsort r)
where m = (realToFrac(sum xs)) / (realToFrac(length xs))
l = filter (<=m) xs
r = filter (>m) xs
main::IO()
main = do
print (show (qsort a))
Run Code Online (Sandbox Code Playgroud)
它抛出:
main.hs:7:36:
No instance for (Fractional Int)
arising from a use of `/'
Possible fix: add an instance declaration for (Fractional Int)
In the …Run Code Online (Sandbox Code Playgroud) 我复制了(http://www.haskell.org/haskellwiki/Euler_problems/11_to_20#Problem_11)上给出的Euler.11解决方案,但它失败并出现索引错误:" (Array.!):undefined array element ".当然首先我想要一个更好的错误消息(!),甚至可能给出失败的索引,但是我没有尝试调试它.
数据输入正确,打印数据显示正确的边界和数据.
所以我在结果表达式和理解体中添加了一些跟踪消息.我从最终表达式中获得了大量的跟踪结果,但是没有来自主体计算的结果.为什么?
prods :: Array (Int, Int) Int -> [Int]
-- trace ("xs: " ++ show xs) (product xs)
prods a = [trace ("xs: " ++ show xs) (product xs) | i <- range $ bounds a,
s <- senses,
let trace1 = check "i: " i,
let is = take 4 $ iterate s i,
let trace2 = check "is: " is,
all (inArray a) is,
let xs = map (a!) is] …Run Code Online (Sandbox Code Playgroud)