小编Fel*_*res的帖子

对于这种情况,函数式编程效率较低吗?

我正在阅读"Javascript中的函数编程"一书.

在第2章中,命令性/功能性代码之间的比较如下:查找字符串中仅包含字母的前四个单词:

势在必行

var words = [], count = 0;
text = myString.split(' ');
for (i=0; count<4, i<text.length; i++) {
  if (!text[i].match(/[0-9]/)) {
    words = words.concat(text[i]);
    count++;
  }
}
Run Code Online (Sandbox Code Playgroud)

实用

var words = [];
var words = myString.split(' ').filter(function(x){
    return (! x.match(/[1-9]+/));
}).slice(0,4);
Run Code Online (Sandbox Code Playgroud)

我推断,对于长度text大于4的任何情况,命令式版本将更快,因为它只运行到找到符合条件的前四个单词,而功能版本首先过滤整个阵列,然后才分开前四个元素.

我的问题是,我是否正确地假设这个?

javascript functional-programming

15
推荐指数
2
解决办法
444
查看次数

我能以非规范的方式从标准输入读取吗?

有没有办法可以在Linux下以非规范模式读取stdin?非规范输入意味着对stdin的调用应在用户输入后立即返回,这不是默认行为,因为可以通过尝试看到:read()

// Create a buffer
let mut buffer :[u8; 1] = [0];
// Loops over the input from stdin, one character a time
while io::stdin().read(&mut buffer).unwrap() > 0 {
    println!("{:?}", buffer);
}
Run Code Online (Sandbox Code Playgroud)

此代码等待用户按下return以打印内容buffer.所需的行为是在用户输入时打印.在Stdin(stdin()上面代码中的调用返回的结构)的文档中,没有引用如何更改此默认行为.

linux rust

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

标签 统计

functional-programming ×1

javascript ×1

linux ×1

rust ×1