小编Woj*_*ilo的帖子

什么是Haskell实际上有用?

例如,如果我开始学习Haskell,我可以发现自己使用它.我听说这种语言的一些常见用途是功能性的吗?

haskell programming-languages functional-programming

465
推荐指数
9
解决办法
17万
查看次数

何时使用Tornado,何时使用Twisted/Cyclone/GEvent/other

哪些框架/库是构建现代多用户Web应用程序的最佳选择?我希望有一个异步的网络服务器,这将允许我轻松扩展.什么解决方案将提供最佳性能/可扩展性/最有用的框架(在易用性和易于开发方面)?

如果它能提供良好的功能(websockets,rpc,streaming等)会很棒.

每种解决方案的优缺点是什么?

python webserver twisted tornado gevent

181
推荐指数
4
解决办法
8万
查看次数

Haskell导出当前模块带有额外的导入模块

是否有可能在Haskell中编写一个模块,除了导出内部可见的内容之外,还会重新导出模块?

让我们考虑以下模块:

module Test where
import A

f x = x
Run Code Online (Sandbox Code Playgroud)

此模块导出内部定义的所有内容,因此它会导出f但不会重新导出从中导入的任何内容A.

另一方面,如果我想重新导出模块A:

module Test (
    module A,
    f
) where
import A

f x = x
Run Code Online (Sandbox Code Playgroud)

有没有办法重新导出A和导出定义的所有内容,Test而无需显式编写在其中定义的每个函数Test

haskell module export

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

ACE编辑器中的自动完成功能

我发现了simmilar问题:Ace Editor自动完成和多种语言

但是回应是ACE不支持自动完成,并且根据 Google编辑组的Ace编辑说: "这是我对Ace的渴望,我们明确地需要它用于Cloud9".

这篇文章已经有一年了,正如你所看到的,cloud9现在支持自动完成:https://c9.io/site/features/

那么默认情况下Ace Editor中是否有自动完成功能?我找不到任何有关它的信息.

javascript html5 autocomplete syntax-highlighting ace-editor

35
推荐指数
5
解决办法
3万
查看次数

在新shell中运行bash命令并在执行此命令后保留在新shell中

我有一个问题.我正在寻找这个答案很长时间 - 如何在新的bash shell中运行命令并在执行此命令后保留在这个新的shell中.例如:

bash -c "export PS1='> ' && ls"
Run Code Online (Sandbox Code Playgroud)

将使新的shell,导出PS1,列表目录和...将退出到我当前的shell.我想留在新的.

bash shell command

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

Haskell快速并发队列

问题

你好!我正在编写一个日志库,我很乐意创建一个在单独的线程中运行的记录器,而所有应用程序线程都只是向它发送消息.我想为这个问题找到性能最佳的解决方案.我在这里需要简单的unboud队列.

途径

我已经创建了一些测试来查看可用解决方案的执行情况,我在这里得到了非常奇怪的结果.我测试了4个实现(下面提供的源代码)基于:

  1. 管道并发
  2. Control.Concurrent.Chan
  3. Control.Concurrent.Chan.Unagi
  4. 基于"Haskell中的并行和并发编程"一书中描述的MVar请注意,这种技术为我们提供了容量为1的有限队列 - 它仅用于测试

测试

以下是用于测试的源代码:

{-# LANGUAGE NoMonomorphismRestriction #-}

import Control.Concurrent (threadDelay)
import Control.Monad (forever)
import Pipes
import qualified Pipes.Concurrent as Pipes
import Control.Applicative
import Control.Monad (replicateM_)
import System.Environment (getArgs)

import Control.Concurrent.Chan
import Control.Concurrent (forkIO)
import qualified Control.Concurrent.Chan.Unagi as U
import Control.Concurrent.MVar
import Criterion.Main

data Event = Msg String | Status | Quit deriving (Show)

----------------------------------------------------------------------
-- Pipes
----------------------------------------------------------------------

pipesLogMsg = yield (Msg "hello")
pipesManyLogs num = replicateM_ num pipesLogMsg

pipesAddProducer num …
Run Code Online (Sandbox Code Playgroud)

concurrency profiling haskell stm haskell-pipes

25
推荐指数
2
解决办法
2207
查看次数

Haskell中的精确流量控制

想法

你好!我正在尝试在Haskell中实现一个基于数据流意识形态的图像处理库.我有一个问题与我想要如何处理控制流程有关.

主要想法是介绍一个time.的timeFloat,它可以在任何地方的代码访问(你可以认为它像约州单子,但有点滑稽).有趣的是,我们可以timeShift对结果使用操作,影响相应操作的时间.

一个例子最好解释这种情况.让我们使用以下数据流图:

--               timeShift(*2) --
--              /                 \
-- readImage --                    addImages -> out
--              \                 /
--                blur ----------
Run Code Online (Sandbox Code Playgroud)

和它的伪代码(它不是类似的 - 如果我们在这里使用或者记号,它不重要,这个想法应该是清楚的):

test = do
    f      <- frame
    a      <- readImage $ "test" + show f + ".jpg"
    aBlur  <- blur a
    a'     <- a.timeShift(*2)
    out    <- addImage aBlur a'

main = print =<< runStateT test 5
Run Code Online (Sandbox Code Playgroud)

5time我们想要运行的test功能.该timeShift函数影响其左侧的所有操作(在数据流图中) - …

algorithm monads continuations haskell functional-programming

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

Cabal - 在构建库时公开所有模块

是否可以告诉Cabal在构建库时公开所有模块?

现在我必须在Exposed-modulescabal configurtion文件部分提供很长的模块列表.

haskell cabal

19
推荐指数
2
解决办法
2729
查看次数

使用GHC API将Haskell源代码编译为CORE,将CORE编译为二进制代码

想法

你好!我想创建一个程序,它将生成Haskell Core并将使用GHC API将其进一步编译成可执行文件.但在我做之前,我想构建一个非常基本的例子,展示我们如何才能将Haskell源代码编译成CORE然后再编译成二进制文件.

问题

我已经阅读了很多文档并尝试了GHC Api的许多方法,但是现在没有成功.我开始使用官方GHC Api介绍并成功编译了这些示例.实例显示下列函数的用法:parseModule,typecheckModule,desugarModule,getNamesInScopegetModuleGraph,但不包括最后的编译步骤.另一方面,api中有一些函数,其名称与问题相关,如HscMain.{hscCompileOneShot,hscCompileBatch}GHC.{compileToCoreModule,compileCoreToObj}.我尝试使用它们,但是我遇到了运行时错误,就像在这个例子中一样:

import GHC
import GHC.Paths ( libdir )
import DynFlags
targetFile = "Test.hs"

main :: IO ()
main = do
   res <- example
   return ()

example = 
    defaultErrorHandler defaultFatalMessager defaultFlushOut $ do
      runGhc (Just libdir) $ do
        dflags <- getSessionDynFlags
        let dflags' = foldl xopt_set dflags
                            [Opt_Cpp, Opt_ImplicitPrelude, Opt_MagicHash]
        setSessionDynFlags dflags'
        coreMod <- compileToCoreModule targetFile
        compileCoreToObj False …
Run Code Online (Sandbox Code Playgroud)

haskell compilation ghc ghc-api

19
推荐指数
2
解决办法
855
查看次数

C++ 11反射库

我现在要用c ++ 11编写大项目.

我正在寻找一些好的c ++ 11/c ++反射库,我发现了几个不同的库,但是大多数库在过去几年都没有更新,或者它们的功能非常有限.

你能告诉我是否有一个非常好的c ++ 1/c ++库用于反射?(我希望有静态和动态反射,尽可能多地了解方法,类等信息,可以动态添加和访问方法等)

或许c ++ 11提供了一些额外的功能,有助于更好地设计反射库,我应该自己编写吗?(虽然我没有找到有关它的信息.)

c++ reflection introspection c++11

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