global是一个包含任何全局变量的对象(至少在Node.js中,它们window在浏览器中).
是否有代表当前范围的类似变量?局部变量没有出现global(有充分的理由:))
asdf = "hello";
var local = "hello";
console.log(global); // includes asdf
console.log(???); // includes local?
Run Code Online (Sandbox Code Playgroud) 如何使用parsec解析字符串中所有匹配的输入并丢弃其余的?
示例:我有一个简单的数字解析器,如果我知道它们之间的区别,我可以找到所有数字:
num :: Parser Int
num = read <$> many digit
parse (num `sepBy` space) "" "111 4 22"
Run Code Online (Sandbox Code Playgroud)
但如果我不知道数字之间是什么呢?
"I will live to be 111 years <b>old</b> if I work out 4 days a week starting at 22."
Run Code Online (Sandbox Code Playgroud)
many anyChar 不作为分隔符,因为它消耗一切.
那么我怎样才能得到与我想忽略的东西包围的任意解析器相匹配的东西?
编辑:请注意,在真正的问题中,我的解析器更复杂:
optionTag :: Parser Fragment
optionTag = do
string "<option"
manyTill anyChar (string "value=")
n <- many1 digit
manyTill anyChar (char '>')
chapterPrefix
text <- many1 (noneOf "<>")
return $ Option (read n) text
where …Run Code Online (Sandbox Code Playgroud) 我已经阅读了我在这里可以找到的每个Haskell部署线程以及更广泛的网络上的几个,但我仍然没有得到一件事.如果我为我的服务器编译了一个应用程序,并且可以ssh并运行它,我该如何运行该东西呢?假设我使用的是HTTP接口(不是FastCGI).
例如,对于node.js,我们使用cluster来启动在几个处理器内核上启动的应用程序,然后为centOS创建一个init.d脚本来运行,daemonize,有一个pid文件等.
我如何为Haskell应用程序执行此操作?
我们的数据集在工作时一直出现的东西需要在给定一系列键的情况下查询一堆值.日期范围是一个明显的例子.
我知道你可以使用unix时间戳和一个有序集来按日期范围查询,但这看起来很烦人,因为我不得不要么
也许选项2是标准的?有没有办法一次向redis请求多个密钥?像mongodb的$ in查询?或者也许在管道中要求一堆密钥同样快?
我正在编写一个Haskell JSON API,我想写一些测试.事情真的是IO很重,所以我认为编写一些功能测试最有意义:(添加一个Foo,看看/ foos /返回它)等等.
我当然读过关于QuickCheck的内容,但它似乎专注于测试纯代码.
我应该如何编写/运行需要测试API的功能测试?如果重要,我正在使用Scotty/WAI.虽然一个例子会很棒,但是一对好的链接和一些建议会很好.
我需要接收音频信号,并从中提取重叠的音频帧.然后我需要将它们转换为频率数据(FFT填充/像谱图)并分析频率信息.
例如,如果我有1分钟的mp3文件,我想将文件分成较小的文件,从00:00.000到00:03.000,从00:00.010到00:03.010.然后我需要查看每个子文件的频率细分.
哪种编程语言有很好的音频工具可以帮助我做到这一点?我可以使用linux命令行工具吗?Node.js(是的)或Haskell的奖励积分,我最熟悉的.
我刚刚升级到RequireJS 2.1.1 - 我有一个AngularJS应用程序我正在加载它.在主要定义运行之前,我从角度得到"No module:app".
它在RequireJS 2.0.1上运行正常.知道可能会有什么变化吗?
这是public/index.html
<!doctype html>
<html lang="en" ng-app="app">
<head>
<meta charset="utf-8">
<title>AngularJS</title>
<link rel="stylesheet" href="css/style.css"/>
<script data-main="main" src="requirejs/require.js"></script>
</head>
<body>
<div ng-view></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是public/main.coffee
require.config
shim:
underscore: exports: '_'
ngResource:
exports: 'angular'
deps: ['angular']
angular:
exports: 'angular'
deps: ['jquery']
jquery: exports: 'jQuery'
paths:
underscore: 'underscore/index'
angular: 'AngularJS/angular'
ngResource: 'angular-modules/resource'
jquery: 'jquery/jquery'
# Bootstrap angularjs using requirejs.
define [], (require) ->
angular = require 'angular'
ngResource = require 'ngResource'
TestCtrl = require 'controllers/TestCtrl'
## ROUTER …Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个存储数据的愚蠢的网络服务器State.我正在使用Web.Scotty.我之前使用过ReaderT和scotty来访问配置,但是遵循相同的方法在这里不起作用.它会根据每个请求重置状态.
我想在程序启动时设置初始状态,然后在程序的整个生命周期中保持相同的状态.
我怎样才能做到这一点?(以下为每个请求创建一个新状态)
{-# LANGUAGE OverloadedStrings #-}
import Web.Scotty.Trans
import Control.Monad.State (StateT, evalStateT, lift)
import qualified Control.Monad.State as S
import Data.Text.Lazy (Text)
main :: IO ()
main = do
let runner = flip evalStateT "message"
scottyT 3000 runner runner routes
routes :: ScottyT Text (StateT Text IO) ()
routes = do
get "/data" $ do
val <- lift S.get
text val
put "/data/:val" $ do
val <- param "val"
lift $ S.put val
text …Run Code Online (Sandbox Code Playgroud) 我正在使用该servant库作为我的JSON API.我需要一些帮助才能使ServerT MyAPI (ReaderT a IO)monad堆栈正常工作.
这是一个使用示例ReaderT,但没有将其与servant集成:
-- this code works
type TestAPI =
"a" :> Get '[JSON] String
:<|> "b" :> Get '[JSON] String
test2 :: EitherT ServantErr IO String
test2 = return "asdf"
testServer :: Int -> Server TestAPI
testServer code = test :<|> test2
where
test :: EitherT ServantErr IO String
test = liftIO $ runReaderT (giveMeAMessage) code
-- this is contrived. In my real application I want to use a …Run Code Online (Sandbox Code Playgroud) 也许这只是我最近一直在使用http://nodejs.org/这一事实,但Objective-C(iphone)中缺少关闭一直很难解决.
例如,我正在创建服务类.每个服务类都可以有多个方法,每个方法都会生成不同的URL请求.我可以使用委托模式,但这意味着每次我想在其上调用方法时都必须创建一个新服务(因为它必须存储该请求的委托和选择器,并且新方法调用将覆盖它们) .
对我来说更难的是,我不能轻易地将局部变量保留在回调范围内.我必须存储我想要发送回服务类本身的委托的任何内容,这使得在每个类上拥有多个方法变得更加困难.
你是如何做到这一点的呢?我应该放弃抱怨并以另一种方式做到吗?
haskell ×6
javascript ×2
monads ×2
node.js ×2
angularjs ×1
closures ×1
coffeescript ×1
html ×1
iphone ×1
linux ×1
objective-c ×1
parsec ×1
python ×1
redis ×1
requirejs ×1
ruby ×1
scotty ×1
testing ×1
unit-testing ×1