当我尝试使用一个真正的项目来学习Haskell时,我遇到了下面的定义。我不明白每个论点前面的感叹号是什么意思,我的书似乎也没有提到它。

data MidiMessage = MidiMessage !Int !MidiMessage

我找到了这篇关于懒惰的文章:c# 4.0中的懒惰-懒惰

使用Lazy对象获得最佳性能的最佳实践是什么? 谁能给我指出在实际应用中的实际用途?换句话说,我应该什么时候使用它?

我试图读取一个大文件一行在一次。我在Quora上找到了一个关于这个主题的问题,但我错过了一些联系,把整个事情联系在一起。

 var Lazy=require("lazy");
 new Lazy(process.stdin)
     .lines
     .forEach(
          function(line) { 
              console.log(line.toString()); 
          }
 );
 process.stdin.resume();

我想要弄清楚的是如何一次从文件中读取一行,而不是像本例中那样读取STDIN。

我试着:

 fs.open('./VeryBigFile.csv', 'r', '0666', Process);

 function Process(err, fd) {
    if (err) throw err;
    // DO lazy read 
 }

但这并不奏效。我知道在必要时我可以使用PHP之类的东西,但我想弄清楚这个问题。

我不认为其他答案会起作用,因为文件比我运行它的服务器的内存大得多。