小编Chr*_*ris的帖子

在rxvt/cygwin下没有git配色方案

在厌倦了默认的cygwin终端之后,我决定尝试一下rxvt.一切似乎都很好,除了一件事:我的git存储库的配色方案停止工作.

BTW其他颜色方案,如vim编辑器工作正常rxvt.我还运行此脚本以确保启用256种颜色.

~/.gitconfig看起来像这样:

[user]
  name = xyz
  email = xyz@abc.com    
[color]
  diff = auto
  status = auto
  branch = auto
[core]
  autocrlf = false
Run Code Online (Sandbox Code Playgroud)

git terminal cygwin colors rxvt

9
推荐指数
2
解决办法
3339
查看次数

Terraform - 我应该使用user_data或provisioner来引导资源吗?

看起来我可以使用user_data模板文件或provisioner带有内联命令的"remote-exec" 来引导.那么哪一个被认为更惯用?

cloud provisioning terraform devops

9
推荐指数
2
解决办法
4021
查看次数

如何测试Clojure中两个数字是否接近

在Clojure中测试两个数字是否彼此接近的惯用方法是什么?

沿着这条线的某个地方:

(deftest sqrt-test
   (is (~= 1.414 (Math/sqrt 2)))
Run Code Online (Sandbox Code Playgroud)

testing unit-testing clojure

6
推荐指数
2
解决办法
959
查看次数

如何记录来自Akka(Java)的所有传入消息

在Scala中,您可以使用LoggingReceive包装receive函数.您如何从Java API实现相同的目标?

def receive = {
  LoggingReceive {
    case x ? // do something
  }
}
Run Code Online (Sandbox Code Playgroud)

java scala actor akka

4
推荐指数
1
解决办法
2136
查看次数

OCaml懒惰评价:'a lazy_t vs unit - >'a

两者都达到了同样的目的

# let x = fun () -> begin print_endline "Hello"; 1 end;;
val x : unit -> int = <fun>
# x ();;
Hello
- : int = 1
# let y = lazy begin print_endline "World"; 2 end;;
val y : int lazy_t = <lazy>
# Lazy.force y;;
World
- : int = 2
Run Code Online (Sandbox Code Playgroud)

有什么理由应该优先于另一个?哪一个更有效率?

ocaml functional-programming lazy-evaluation

4
推荐指数
1
解决办法
632
查看次数

是否存在OCaml的增量构建?

是否有任何工具可以用来获得像Eclipse/IntelliJ/Visual Studio那样的增量构建?

ocaml incremental-build omake ocamlbuild

3
推荐指数
1
解决办法
142
查看次数

Ubuntu没有Java?

我刚刚在VMWare Workstation中安装了Ubuntu 10.4.

当我尝试安装java时,我找不到包:

xxx@ubuntu:~$sudo apt-get install sun-java6-jre
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package sun-java6-jre is not available, but is referred to by another package.
This may mean the package is missing, has been obsoleted, or
is only available from another source
E: Package sun-java6-jre has no installation candidate
Run Code Online (Sandbox Code Playgroud)

我糊涂了.

java ubuntu

2
推荐指数
1
解决办法
2540
查看次数

如何在IO代码中与纯算法交互

为了用一个简单的例子说明这一点,请说我已经实现了filter:

filter :: (a -> Bool) -> [a] -> [a]
Run Code Online (Sandbox Code Playgroud)

我有一个p与现实世界相互作用的谓词:

p :: a -> IO Bool
Run Code Online (Sandbox Code Playgroud)

如何在filter不编写单独的实现的情况下使其工作:

filterIO :: (a -> IO Bool) -> [a] -> IO [a]
Run Code Online (Sandbox Code Playgroud)

大概如果我可以p变成p':

p': IO (a -> Bool)
Run Code Online (Sandbox Code Playgroud)

然后我就能做到

main :: IO ()
main = do 
  p'' <- p'
  print $ filter p'' [1..100]
Run Code Online (Sandbox Code Playgroud)

但我一直无法找到转换.

编辑: 正如人们在评论中指出的那样,这样的转换没有意义,因为它会破坏IO Monad的封装.

现在的问题是,我可以构建我的代码,以便纯和IO版本不完全复制核心逻辑吗?

io monads haskell purely-functional

2
推荐指数
1
解决办法
176
查看次数

如何在Haskell中专门针对IO使用mapM

说我有一个代表从一些计算任务kv其中一些投入必须要获取外部。

newtype Task k v = Task { run ? ? f. Monad f ? (k ? f v) ? f v }
Run Code Online (Sandbox Code Playgroud)

对于某些任务,mapM将使用例如提取多个密钥。我想专攻mapM一些单子。专门针对IO我想用来Control.Concurrent.Async.mapConcurrently同时执行IO操作的monad 。

我的第一个直觉是介绍包装器类型

newtype AsyncIO a = AsyncIO { io :: IO a }
Run Code Online (Sandbox Code Playgroud)

然后介绍

instance Monad AsyncIO
Run Code Online (Sandbox Code Playgroud)

但是,这是行不通的,因为在当前的GHC实现mapMtraverse,它是在中定义的Traversable

是否有一个优雅的解决方案?

monads haskell io-monad

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