Tag: 应用

为什么应用程序是Monad的超类?

鉴于: Applicative m, Monad m => mf :: m (a -> b), ma :: ma 这似乎被认为是一个法律: mf <*> ma === do { f <- mf; a <- ma; return (fa) } 或者更简洁: (<*>) === ap Control.Applicative的文档说<*>是“顺序应用程序”,这表明(<*>) = ap 。 这意味着, <*>必须按顺序从左到右评估效果,与>>= …保持一致。但这种感觉是错误的。 McBride和Paterson的原始文件似乎意味着从左到右的sorting是任意的: IO monad,实际上任何Monad都可以通过使用pure = return和<*> = ap 。 我们也可以用相反顺序执行计算的ap的变体 ,但是在本文中我们应该保持从左到右的顺序。 所以有两个合法的,不重要的派生出现在<*> >>=和return ,具有不同的行为。 […]

如何以python的跨平台方式存储桌面应用程序数据?

我有一个需要存储用户数据的Python桌面应用程序。 在Windows上,这通常是%USERPROFILE%\Application Data\AppName\ ,在OSX上通常是~/Library/Application Support/AppName/ ,而在其他* nixes上通常是~/.appname/ 。 在标准库os.path.expanduser中存在一个函数,它将使用户的主目录,但我知道在Windows上,至less“应用程序数据”已经被本地化为用户的语言。 对于OSX也是如此。 什么是正确的方式来获得这个位置? 更新:一些进一步的研究表明,在OSX上得到这个的正确方法是使用函数NSSearchPathDirectory,但这是cocoa,所以它意味着调用PyObjC桥…

应用性parsing与单体parsing有什么好处?

似乎有一个共识,你应该使用Parsec作为应用而不是monad。 应用性parsing与单体parsing有什么好处? 样式 性能 抽象化 monadicparsing出来了吗?

node.js中的require()如何工作?

我试过这个: // mod.js var a = 1; this.b = 2; exports.c = 3; // test.js var mod = require('./mod.js'); console.log(mod.a); // undefined console.log(mod.b); // 2 console.log(mod.c); // 3, so this === exports? 所以我形象,要求()可能是这样实现的: var require = function (file) { var exports = {}; var run = function (file) { // include "file" here and run […]

何时以及为什么要在Scala中使用Applicative Functor

我知道Monad可以在Scala中表示如下: trait Monad[F[_]] { def flatMap[A, B](f: A => F[B]): F[A] => F[B] } 我明白为什么它是有用的。 例如,给出两个function: getUserById(userId: Int): Option[User] = … getPhone(user: User): Option[Phone] = … 我可以很容易地写函数getPhoneByUserId(userId: Int)因为Option是一个monad: def getPhoneByUserId(userId: Int): Option[Phone] = getUserById(userId).flatMap(user => getPhone(user)) … 现在我在Scala中看到Applicative Functor : trait Applicative[F[_]] { def apply[A, B](f: F[A => B]): F[A] => F[B] } 我不知道什么时候该用它来代替 monad。 […]

从所有值为NA的数据框中删除列

我遇到了一个数据框的问题,我自己也无法真正解决这个问题: dataframe具有任意属性作为列 , 每行代表一个数据集 。 问题是: 如何摆脱所有行的值为NA的列 ?

如何使用调用或应用程序调用JavaScript构造函数?

我怎么能概括下面的函数拿N个参数? (使用电话或申请?) 有没有一个程序化的方法来将参数应用到“新”? 我不希望构造函数被视为一个普通的函数。 /** * This higher level function takes a constructor and arguments * and returns a function, which when called will return the * lazily constructed value. * * All the arguments, except the first are pased to the constructor. * * @param {Function} constructor */ function conthunktor(Constructor) { var args = […]

非Functor / Functor / Applicative / Monad的好例子?

在向某人解释什么是Xtypes的时候,我很难find恰好是X的数据结构的好例子。 所以,我请求例子: 一个不是Functor的types构造函数。 一个types构造函数,它是一个Functor,但不适用。 一个types构造函数是一个应用程序,但不是一个Monad。 Monad的types构造函数。 我认为Monad在世界各地都有很多的例子,但是Monad的一个很好的例子是与之前的例子有一些联系,可以完成这个图画。 我寻找相似的例子,仅在属于特定types的重要方面有所不同。 如果有人能够在这个层次结构的某个地方偷偷摸摸地find一个箭头的例子(它在Applicative和Monad之间?),那也太棒了!

为什么“安全”比“安全”更安全?

文件说 vapply类似于sapply ,但具有预先指定的返回值types,因此可以更安全地使用。 请你详细说明为什么它通常更安全,也许提供例子? PS:我知道答案,我已经倾向于避免sapply 。 我只希望在这里有一个很好的答案,所以我可以指出我的同事。 请不要“阅读手册”的答案。

如何将函数应用于R中matrix(或dataframe)的每一行

假设我有一个2×2的matrix和一个把2个vector作为它的一个参数的函数。 我想将这个函数应用到matrix的每一行,并得到一个n向量。 如何在R中做到这一点? 例如,我想计算三点的2D标准正态分布的密度: bivariate.density(x=c(0,0),mu=c(0,0), sigma=c(1,1), rho=0){ exp(-1/(2*(1-rho^2))*(x[1]^2/sigma[1]^2+x[2]^2/sigma[2]^2-2*rho*x[1]*x[2]/(sigma[1]*sigma[2]))) * 1/(2*pi*sigma[1]*sigma[2]*sqrt(1-rho^2)) } out=rbind(c(1,2),c(3,4),c(5,6)); 如何将函数应用到每一行? 如何通过指定的方式将除了点之外的其他参数的值传递给函数? 谢谢!