按照这个优秀系列的术语,让我们(1 + x^2 - 3x)^3用a 表示一个表达式Term Expr,其中数据类型如下:
data Expr a =
Var
| Const Int
| Plus a a
| Mul a a
| Pow a Int
deriving (Functor, Show, Eq)
data Term f = In { out :: f (Term f) }
Run Code Online (Sandbox Code Playgroud)
是否存在适合执行符号区分的递归方案?我觉得这几乎是一个专业的Futumorphism Term Expr,即futu deriveFutu适合的功能deriveFutu:
data CoAttr f a
= Automatic a
| Manual (f (CoAttr f a))
futu :: Functor f => (a -> f (CoAttr …Run Code Online (Sandbox Code Playgroud) 我想编写一个接受输入列表并按以下方式操作的函数:
步骤1:将列表的第一个元素和列表的最后一个元素放在一个子列表中。
步骤2:获取列表的第二个元素和列表的倒数第二个元素,并将其放到下一个子列表中。
步骤3:获取列表的第三个元素和列表的倒数第三个元素,并将其放到下一个子列表中。
根据相同的方案继续此操作(获取n个元素的列表)...
如果输入列表的元素数为奇数,则将输入列表的n / 2个元素添加为输出列表的最后一个子列表。
例:
[1,2,3,4,5,6,7]
-- should be transformed to
[[1,7],[2,6],[3,5],[4]]
Run Code Online (Sandbox Code Playgroud)
我已经编写了一个函数,该函数接受列表的每两个元素并将其放到子列表中,我想知道这段代码是否可以帮助我解决上述问题:
g2 :: [a] -> [[a]]
g2 [] = []
g2 (x1:x2:xs) = [x1,x2]: g2 xs
g2 xs = [xs]
Run Code Online (Sandbox Code Playgroud) 在下面的例子中,我相信当函数Struct::new被调用时,由于#[inline]属性的原因,它的主体将被内联(复制)到调用站点。这将导致生成更多代码和更慢的编译时间,但由于消除了函数调用,因此运行时性能更好。
impl Struct {
#[inline]
pub fn new() -> Self {
// initialization code
}
}
Run Code Online (Sandbox Code Playgroud)
现在const fn在 Rust 上是稳定的。当有人将函数声明为 时const,它应该允许编译器在编译时对其进行评估。
impl Struct {
pub const fn new() -> Self {
// initialization code
}
}
Run Code Online (Sandbox Code Playgroud)
将函数声明为const并省略#[inline]属性是否提供与前一个示例中的代码相同的权衡(因为函数在编译时评估并且其结果“内联”到调用站点)?我们应该用 替换所有#[inline]属性const吗?如果它们不相同,它们之间的区别是什么?
我有一个 C++ 测试程序,可以让 CPU 保持忙碌:
\n#include <cstdint>\n#include <iostream>\n\n// Linear-feedback shift register\nuint64_t lfsr1(uint64_t max_ix)\n{\n uint64_t start_state = 0xACE1u; /* Any nonzero start state will work. */\n uint64_t lfsr = start_state;\n uint64_t bit; /* Must be 16-bit to allow bit<<15 later in the code */\n\n for (uint64_t ix = 0; ix < max_ix; ++ix)\n { /* taps: 16 14 13 11; feedback polynomial: x^16 + x^14 + x^13 + x^11 + 1 */\n bit = ((lfsr >> 0) ^ (lfsr >> …Run Code Online (Sandbox Code Playgroud) 在Python中是否可以转换用逗号分隔的原始字符串,例如
tt0099700,tt0096061,tt0118688,tt0120784
Run Code Online (Sandbox Code Playgroud)
到Python数组/列表?
这样的字符串作为变量在循环中row[i]。
谢谢你的帮助。