我试图virtualenv[wrapper]通过Cygwin在我的Windows机器上工作.安装成功,并easy_install基于以下方向:http://www.doughellmann.com/docs/virtualenvwrapper/.
当我使用时出现问题mkvirtualenv [name_of_vir_env].我得到以下输出:
$ mkvirtualenv testenv
New python executable in testenv\Scripts\python.exe
Installing setuptools.................done.
bash: D:\.virtualenvs/testenv/bin/postactivate: No such file or directory
chmod: getting attributes of `D:\\.virtualenvs/testenv/bin/postactivate': No such file or directory
bash: D:\.virtualenvs/testenv/bin/predeactivate: No such file or directory
chmod: getting attributes of `D:\\.virtualenvs/testenv/bin/predeactivate': No such file or directory
bash: D:\.virtualenvs/testenv/bin/postdeactivate: No such file or directory
chmod: getting attributes of `D:\\.virtualenvs/testenv/bin/postdeactivate': No such file or directory
ERROR: Environment 'D:\.virtualenvs/testenv' does not contain …Run Code Online (Sandbox Code Playgroud) 可以通过以下方式启动文本文件来在Scala中编写shell脚本:
#!/bin/sh
exec scala "$0" "$@"
!#
Run Code Online (Sandbox Code Playgroud)
为了简化脚本创建,我想编写一个名为scalash(可能是BASH脚本)的可执行文件,允许将Scala脚本标题缩短为一行:
#!/bin/scalash
Run Code Online (Sandbox Code Playgroud)
可能吗 ?如果我可以传递可选参数scalash,例如添加类路径依赖项,则需要额外的点数.
我想回顾一下同事的补丁.我们无法使用审核工具.所以我想评论他制作的补丁文件.是否可以在(svn)补丁文件中写入内联注释?
我在svn红皮书中找不到任何信息.我甚至无法找到补丁文件语法来弄清楚自己.
我正在尝试优化代码:
data Tree = Empty | Node Integer Tree Tree
minHeight Empty = -1
minHeight (Node _ Empty Empty) = 0
minHeight (Node _ l r ) = (min (minHeight l) (minHeight r)) + 1
Run Code Online (Sandbox Code Playgroud)
我的目标是不计算其深度将高于已知的分支的分支.
我很好奇是否可以编写一个函数apply_nth,它接受一个函数,一个参数的数量,以及该参数的值,然后返回一个新的,部分应用的函数.
我得到的感觉是,由于类型系统这是不可能的,但我无法得出令人满意的答案.我也无法想出一个工作型签名.
如果语言更松散,我想代码可能看起来像这样.
apply_nth f 0 x = f x
apply_nth f n x = \a -> apply_nth (f a) (n-1) x
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
haskell functional-programming generic-programming dependent-type
为什么不像以下代码一样捕获CTRL-C?
MAXVAL = 10000
STEP_INTERVAL = 10
for i in range(1, MAXVAL, STEP_INTERVAL):
try:
print str(i)
except KeyboardInterrupt:
break
print "done"
Run Code Online (Sandbox Code Playgroud)
我的期望是 - 如果在程序运行时按下CTRL-C,KeyboardInterrupt则应该离开循环.它不是.
对我做错的任何帮助?
我试图理解mapConserve,它被称为"像xs map f,但如果函数f将所有元素映射到自己,则返回xs不变",来自List.然而,它正在发出错误.
def map [B] (f: (A) ? B): List[B]
def mapConserve (f: (A) ? A): List[A]
def mapConserve [B >: A <: AnyRef] (f: (A) ? B): List[B]
scala> list map (x=>x)
res105: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
scala> list mapConserve (x=>x)
<console>:12: error: inferred type arguments [Int] do not conform to method mapConserve's type parameter bounds [B >: Int <: AnyRef]
list mapConserve (x=>x)
^
Run Code Online (Sandbox Code Playgroud)
mapConserve代码应该满足(A)=> A函数.如果不是,它仍然应该满足(A)=> B函数,因为类型A可以是其自身的子类型和超类型.请赐教mapConserve的目的和错误.
我正在构建一个泛型函数,它接受一个HList表单F[T1] :: ... :: F[Tn] :: HNil,将其转换为a F[T1 :: ... :: Tn :: HNil]然后需要将其传递到传入的块中.但是,为了使其工作,我需要提取HList类型那个F[_].我在Shapeless'找到了一些与之相关的东西hlistconstraints:
/**
* Type class witnessing that every element of `L` has `TC` as its outer type constructor.
*/
trait UnaryTCConstraint[L <: HList, TC[_]]
Run Code Online (Sandbox Code Playgroud)
...但这只能用于验证传入的hlist确实是由...组成的F[_]; 然而似乎没有办法提取那个_位,以便对自己的hlist说.
我应该在哪里寻找能够找到工作的东西?或者我不应该期望找到任何开箱即用的东西,而是自己构建类型计算?
披露:这个问题是对包含一些F [_]的元组/ hlist的通用转换/折叠/映射的辅助,但在我看来,它至少与独立问题一样有用.
我是Haskell的新手,并且对如何以最惯用和最清晰的方式表达一些操作感到困惑.目前(还会有更多)我很困惑<*>(我甚至不确定该怎么称呼).
例如,如果我有,比方说
f = (^2)
g = (+10)
Run Code Online (Sandbox Code Playgroud)
作为代表性的功能(实际上它们更复杂,但关键在于它们是不同的和不同的),然后
concatMap ($ [1,2,3,4,10]) [(f <$>), (g <$>) . tail . reverse]
Run Code Online (Sandbox Code Playgroud)
和
concat $ [(f <$>), (g <$>) . tail . reverse] <*> [[1,2,3,4,10]]
Run Code Online (Sandbox Code Playgroud)
完成同样的事情.
是其中一个更惯用的Haskell,是否有人暗示Haskell经验丰富的读者,而另一个则不然.也许有更多(更好)的方式来表达完全相同的东西.这两种方法之间是否存在概念上的差异,像我这样的新手Haskeller可能会丢失?
我知道有两种方法可以将接口规范与Haskell中该接口的实现分开:
类型类,例如:
RandomGenStdGen记录,例如:
Network.TransportNetwork.Transport.TCP问题1:什么时候适合使用其中一种?
问题2:在Haskell中分离接口/ impl有哪些其他方法?