小编Pum*_*use的帖子

你能创建一个函数,它接受另一个函数和一个参数,并返回一个嵌套函数调用的惰性流吗?

在Clojure中,我使用了一个名为iterate:

返回x,(fx),(f(fx))等的延迟序列.f必须没有副作用

Rust中有类似的东西吗?

例如,我有这个函数,我想传递给一个带有数字的函数,然后迭代一个流/范围/向量,直到找到Some(1):

fn coltz(n: u64) -> Option<u64> {
    match n % 2 {
        0 => Some(n / 2), 
        _ => Some(3 * n + 1)
    }
}
Run Code Online (Sandbox Code Playgroud)

rust

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

Java 8时间与变量日

我似乎无法使用变量空格来解析我的日期.

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM d HH:mm:ss yyyy");
LocalDateTime dateTime = LocalDateTime.parse(date, formatter);
Run Code Online (Sandbox Code Playgroud)

这是我必须接受的格式

Sat Jul  2 08:52:13 2016
Sat Jul 12 08:52:13 2016
Run Code Online (Sandbox Code Playgroud)

如果我将格式化程序更改为下面的格式化程序,我可以让顶部通过,但它将以2位数字打破

EEE MMM  d HH:mm:ss yyyy
Run Code Online (Sandbox Code Playgroud)

java java-8

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

grep/pcregrep/sed/awk最后一次匹配到文件末尾后的数据

我需要在ENTRY的最后一个匹配到文件末尾之后抓取内容,我似乎无法做到.它可以是多行,数据可以包含文件末尾的任何字符,包括(,\n,).

我试过了:

tail -1 file # doesn’t work due to it not consistently being one line
grep "^(.*"  # only grabs one line
pcregrep -M  '\n(.*' file # I think a variation of this is the solution, but I’ve had no luck so far.  
Run Code Online (Sandbox Code Playgroud)

文件增长如下:

TOP OF FILE                
%
ENTRY
(S®s
?6ûí?‹ôTìßÅDPˆ¬k·Ù"=ÓxF)*†‰ú?ÃQ´¿J‘\˜©ŒG»‡?QÆ’<?sµ-ù±ñ?NäAOilWçk
N+P}V<ôÒ??µ?W*`Hß”;–GØ»14?åR"ºã
FD‘mÍõ?*ÊÎÉC)(S®s
?6ûí?‹ôTìßÅDPˆ¬k·Ù"=ÓxF)*†‰ú?ÃQ´¿J‘\˜©ŒG»‡?QÆ’<?sµ-ù±ñ?NäAOilWçk
N+P}V<ôÒ??µ?W*`Hß”;–GØ»14?åR"ºã
FD‘mÍõ?*ÊÎÉC)eq  
{
DATA
}
ENTRY
(A® S\kÉ?ã1»Âb?¯Ú??ä?HZ@F?§•Ã*‹¡‹…ÿPkJòÑíòú?¶à?¨¢v|u«Ùbó–Ö¶¢?5?Ü@¨•?®@W´?‡*`H?”?–Só¬<?ìEçöf??Gg±:œe™??å)A®  S\kÉ?ã1»Âb?¯Ú??ä?HZ@F?§•Ã*‹¡‹…ÿPkJòÑíòú?¶à?¨¢v|u«Ùbó–Ö¶¢?5?Ü@¨•?®@W´?‡*`H?”?–Só¬<?ìEçöf??Gg±:œe™??å)eq  
{
DATA
}if
ENTRY
(ÌSYõ?9°\K¬???|”/í÷L
Ö?h/ÜÇi"û£?±€ÀNéÓ›bÏÿmâ[?4J’XPü´Z
oÜlø?…qìõ¢,ßü©cÓ{—˜e&ÚÀÓHÏÜ‚m(Œ??ˆQ?òêpoÉÄÂ(S‘E ? !ŸQ§ô6ÉH
Run Code Online (Sandbox Code Playgroud)

regex bash awk grep sed

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

并行程序不会

我已经移走了正在Visual Studio中运行并构建的并行程序。我正在使用c ++并在intel编译器上进行编译。我必须将项目移至Linux机器上并运行它。所以我做了下面的make文件。

parallel: main.o Node.o
    icpc -o parallel main.o Node.o

main.o: main.cpp
    icpc -c $(CONFIG) main.cpp

Node.o: Node.cpp
    icpc -c $(CONFIG) Node.cpp

clean:
    rm -f parallel *.o core core.*

CONFIG  = -openmp
Run Code Online (Sandbox Code Playgroud)

但是得到这个输出。我无法弄清楚为什么它在Windows上无法正常工作。

main.cpp:(.text+0x4e): undefined reference to `__kmpc_begin'
main.cpp:(.text+0xa2): undefined reference to `__kmpc_global_thread_num'
main.cpp:(.text+0xb2): undefined reference to `__kmpc_ok_to_fork'
main.cpp:(.text+0xc9): undefined reference to `__kmpc_fork_call'
main.cpp:(.text+0xdb): undefined reference to `__kmpc_serialized_parallel'
main.cpp:(.text+0xfa): undefined reference to `__kmpc_end_serialized_parallel'
main.cpp:(.text+0x106): undefined reference to `__kmpc_ok_to_fork'
""                  ""                         '""             """
Run Code Online (Sandbox Code Playgroud)

尽管我认为这不是我的项目,但没有必要。

http://bitbucket.org/pumphouse/disjoint-sets-serial-parallel

c++ linux makefile openmp

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

为什么在我通过CompleteStr时nom期望&str?

解析器按预期工作,直到我要解析h:始终是字符串中最后一位的数字,并且编译器给了我

^ expected &str, found struct `nom::types::CompleteStr`
Run Code Online (Sandbox Code Playgroud)

我认为这是因为解析器正在向前看。我该如何停止,或如何表示已完成?

#[macro_use]
extern crate nom;

use nom::digit;
use nom::types::CompleteStr;
use std::str::FromStr;

#[derive(Debug, PartialEq)]
pub struct Order {
    pub l: u64,
    pub w: u64,
    pub h: u64,
}

named!(order_parser<CompleteStr, Order>,
    do_parse!(
        l: map_res!(digit, u64::from_str) >>
        tag!("x") >>
        w: map_res!(digit, u64::from_str) >>
        tag!("x") >>
        h: map_res!(digit, u64::from_str) >>
        (Order {l:  l, w: w, h: h })
    )
);

pub fn wrap_order(order: &str) -> Result<(CompleteStr, Order), nom::Err<&str>> {
    order_parser(order)
}

#[test]
fn test_order_parser() { …
Run Code Online (Sandbox Code Playgroud)

rust nom

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

标签 统计

rust ×2

awk ×1

bash ×1

c++ ×1

grep ×1

java ×1

java-8 ×1

linux ×1

makefile ×1

nom ×1

openmp ×1

regex ×1

sed ×1