例如,如果我开始学习Haskell,我可以发现自己使用它.我听说这种语言的一些常见用途是功能性的吗?
哪些框架/库是构建现代多用户Web应用程序的最佳选择?我希望有一个异步的网络服务器,这将允许我轻松扩展.什么解决方案将提供最佳性能/可扩展性/最有用的框架(在易用性和易于开发方面)?
如果它能提供良好的功能(websockets,rpc,streaming等)会很棒.
每种解决方案的优缺点是什么?
是否有可能在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
?
我发现了simmilar问题:Ace Editor自动完成和多种语言
但是回应是ACE不支持自动完成,并且根据 Google编辑组的Ace编辑说: "这是我对Ace的渴望,我们明确地需要它用于Cloud9".
这篇文章已经有一年了,正如你所看到的,cloud9现在支持自动完成:https://c9.io/site/features/
那么默认情况下Ace Editor中是否有自动完成功能?我找不到任何有关它的信息.
javascript html5 autocomplete syntax-highlighting ace-editor
我有一个问题.我正在寻找这个答案很长时间 - 如何在新的bash shell中运行命令并在执行此命令后保留在这个新的shell中.例如:
bash -c "export PS1='> ' && ls"
Run Code Online (Sandbox Code Playgroud)
将使新的shell,导出PS1,列表目录和...将退出到我当前的shell.我想留在新的.
问题
你好!我正在编写一个日志库,我很乐意创建一个在单独的线程中运行的记录器,而所有应用程序线程都只是向它发送消息.我想为这个问题找到性能最佳的解决方案.我在这里需要简单的unboud队列.
途径
我已经创建了一些测试来查看可用解决方案的执行情况,我在这里得到了非常奇怪的结果.我测试了4个实现(下面提供的源代码)基于:
测试
以下是用于测试的源代码:
{-# 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) 想法
你好!我正在尝试在Haskell中实现一个基于数据流意识形态的图像处理库.我有一个问题与我想要如何处理控制流程有关.
主要想法是介绍一个time
.的time
是Float
,它可以在任何地方的代码访问(你可以认为它像约州单子,但有点滑稽).有趣的是,我们可以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)
这5
是time
我们想要运行的test
功能.该timeShift
函数影响其左侧的所有操作(在数据流图中) - …
algorithm monads continuations haskell functional-programming
是否可以告诉Cabal
在构建库时公开所有模块?
现在我必须在Exposed-modules
cabal configurtion文件部分提供很长的模块列表.
想法
你好!我想创建一个程序,它将生成Haskell Core并将使用GHC API将其进一步编译成可执行文件.但在我做之前,我想构建一个非常基本的例子,展示我们如何才能将Haskell源代码编译成CORE然后再编译成二进制文件.
问题
我已经阅读了很多文档并尝试了GHC Api的许多方法,但是现在没有成功.我开始使用官方GHC Api介绍并成功编译了这些示例.实例显示下列函数的用法:parseModule
,typecheckModule
,desugarModule
,getNamesInScope
和getModuleGraph
,但不包括最后的编译步骤.另一方面,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) 我现在要用c ++ 11编写大项目.
我正在寻找一些好的c ++ 11/c ++反射库,我发现了几个不同的库,但是大多数库在过去几年都没有更新,或者它们的功能非常有限.
你能告诉我是否有一个非常好的c ++ 1/c ++库用于反射?(我希望有静态和动态反射,尽可能多地了解方法,类等信息,可以动态添加和访问方法等)
或许c ++ 11提供了一些额外的功能,有助于更好地设计反射库,我应该自己编写吗?(虽然我没有找到有关它的信息.)
haskell ×6
ace-editor ×1
algorithm ×1
autocomplete ×1
bash ×1
c++ ×1
c++11 ×1
cabal ×1
command ×1
compilation ×1
concurrency ×1
export ×1
gevent ×1
ghc ×1
ghc-api ×1
html5 ×1
javascript ×1
module ×1
monads ×1
profiling ×1
python ×1
reflection ×1
shell ×1
stm ×1
tornado ×1
twisted ×1
webserver ×1