小编drt*_*drt的帖子

Rails:在lib目录中记录代码?

为lib目录中保存的代码配置日志记录的最佳/最简单方法是什么?

ruby logging ruby-on-rails

37
推荐指数
2
解决办法
8912
查看次数

(( - >)t)在Haskell中意味着什么?

在Haskell中,(( - >)t)在实例的类型签名中意味着什么?例如,Functor,Applicative和Monad都有一个实例:

Functor ((->) r)
Run Code Online (Sandbox Code Playgroud)

我找不到任何关于这种类型签名的含义的解释,并且它具有高度的搜索引擎抗性.

haskell functional-programming

15
推荐指数
2
解决办法
850
查看次数

聪明地使用严格的评估在哪里?

似乎有很多聪明的事情都是用懒惰评估的语言完成的,这些例子在严格评估的环境中无法完成.例如,Haskell中的无限列表,或者用树中的最小值替换树中的每个元素.

是否有任何巧妙的事情用严格评估的语言完成的例子,用懒惰评估的语言不能轻易完成?

haskell lazy-evaluation

6
推荐指数
3
解决办法
858
查看次数

Haskell:如何将一个句柄的内容实时传输到另一个句柄中

我正在编写一个以交互方式运行外部子进程的程序,我需要输出句柄的内容一旦可用就输出到stdout.我尝试过这样的事情:

main = do processInfo <- createProcess (proc "ghci" []){std_out = CreatePipe,
                                                    std_in  = CreatePipe }
       case processInfo of
          (Just hIn, Just hOut, _, _) -> do mainloop hIn hOut
                                          hClose hIn
                                          hClose hOut
       _                              -> do error "Unable to start process"

mainloop :: Handle -> Handle -> IO ()
mainloop inh outh = 
    do ineof <- hIsEOF outh
       if ineof
          then return ()
          else do inpStr <- hGetLine outh
                  putStrLn inpStr
                  mainloop inh outh
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为它只能逐行识别输出,因此不会显示未由换行符终止的进程输出句柄上的任何输出.我用hGetContents尝试了同样的事情,但它产生了相同的结果.我已经阅读了System.Process和System.IO的文档,并没有真正找到任何结论.

io monads haskell

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

clojure.tools.namespace refresh-all 后 clojure.repl 命名空间丢失

我不知道如果这是预期或错误,但在运行后(clojure.tools.namespace.repl/refresh-all)clojure.repl命名空间丢失。

nREPL server started on port 61579 on host 127.0.0.1 nrepl://127.0.0.1:61579
REPL-y 0.3.5, nREPL 0.2.7
Clojure 1.6.0

testbed.core=> (doc map)
-------------------------
clojure.core/map
([f coll] [f c1 c2] [f c1 c2 c3] [f c1 c2 c3 & colls])
Returns a lazy...
nil
testbed.core=> (require 'clojure.tools.namespace.repl)
nil
testbed.core=> (clojure.tools.namespace.repl/refresh-all)
:reloading (testbed.core testbed.core-test)
:ok
testbed.core=> (doc map)

CompilerException java.lang.RuntimeException: Unable to resolve symbol: doc in this context, compiling:(/private/var/folders/xs/jbvb_r6j07q8xtclwlcbm21h0000gn/T/form-init6764593924445976503.clj:1:1)
testbed.core=>
Run Code Online (Sandbox Code Playgroud)

我的 project.clj 非常简单:

(defproject testbed "0.1.0-SNAPSHOT"
  :description "FIXME: write description" …
Run Code Online (Sandbox Code Playgroud)

emacs clojure

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

在Java中进行对象转换的简单/优雅方式?

我必须接管并改进/完善一些代码,将Java对象从第三方库转换为内部对象.目前,这是通过一个大的if-else语句完成的:

if (obj instanceOf X)
{
    //code to initialize internal object
}
else if (obj instanceOf Y)
{
    //code to initialize different object
}
else if (obj instanceOf Z)
{
    //more init code
}
...
Run Code Online (Sandbox Code Playgroud)

我个人认为这个解决方案并不令人满意; 它变得冗长而混乱,更糟糕的是,许多if-else块包含更多if-else块处理子类和边缘情况.这个问题有更好的解决方案吗?

java

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