Tag: 懒惰评估

dplyr的filter_中的非标准评估(NSE)和从MySQL中提取数据

我想从一个dynamicfilter的SQL服务器拉一些数据。 我用以下方式使用伟大的R包dplyr: #Create the filter filter_criteria = ~ column1 %in% some_vector #Connect to the database connection <- src_mysql(dbname <- "mydbname", user <- "myusername", password <- "mypwd", host <- "myhost") #Get data data <- connection %>% tbl("mytable") %>% #Specify which table filter_(.dots = filter_criteria) %>% #non standard evaluation filter collect() #Pull data 这段代码工作正常,但现在我想循环它在我的表的所有列,所以我想写的filter为: #Dynamic filter i […]

斯卡拉懒惰的val的(隐藏)成本是多less?

Scala的一个便利function是lazy val ,其中lazy val的评估被延迟,直到有必要(在第一次访问时)。 当然,一个lazy val必须有一些开销 – 在某处Scala必须跟踪是否已经评估了该值,并且评估必须同步,因为多个线程可能会同时尝试首次访问该值。 lazy val的成本究竟是什么 – 是否有一个隐藏的布尔标志与一个lazy val跟踪,如果它已经被评估或没有跟踪,什么是同步的,是否有更多的成本? 另外,假设我这样做: class Something { lazy val (x, y) = { … } } 这是相同的有两个单独的lazy val的x和y或我得到的开销只有一次,对(x, y) ?

解释这个输出素数stream的haskell代码块

我无法理解这段代码: let sieve (p:xs) = p : sieve (filter (\ x -> x `mod` p /= 0) xs) in sieve [2 .. ] 有人可以为我分解吗? 我知道有recursion,但这就是我不明白这个例子中的recursion如何工作的问题。

在node.js中一次读取一行文件?

我正在尝试一次读取一行大文件。 我在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的东西,但我想弄清楚这一点。 我不认为其他的答案是可行的,因为这个文件比我运行的服务器上的内存大得多。