小编abs*_*nce的帖子

Lisp在嵌入式平台上

有没有适合实时嵌入式应用程序的开源Lisp编译器?即增量垃圾收集,可定制内存处理,占用空间小等.

编辑:

为了澄清,"编译器"我的意思是本机代码,而不是字节码解释器(尽管建议的微控制器解释实现比我想象的要小得多!).

lisp embedded real-time

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

Lambda表达式作为Visual C++ 2010中的CLR(.NET)委托/事件处理程序

是否可以将Visual C++ 2010中的新lambda表达式用作CLR事件处理程序?我试过以下代码:

SomeEvent += gcnew EventHandler(
    [] (Object^ sender, EventArgs^ e) {
        // code here
    }
);
Run Code Online (Sandbox Code Playgroud)

它会导致以下错误消息:

错误C3364:'System :: EventHandler':委托构造函数的参数无效; 委托目标需要是指向成员函数的指针

我是在尝试不可能的,还是仅仅是我的语法错误?

.net events lambda delegates c++-cli

11
推荐指数
2
解决办法
5523
查看次数

协同程序的替代品

此示例已用于另一个问题,以说明协同程序如何用于编写视频游戏中的过场动画:

bob.walkto(jane)
bob.lookat(jane)
bob.say("How are you?")
wait(2)
jane.say("Fine")
...
Run Code Online (Sandbox Code Playgroud)

每个函数产生主动引擎,它在恢复协程之前进行动画,定时等.协程的可能替代方案是事件队列而不是代码,但是必须实现控制逻辑和循环作为事件.是否有其他可用于实现此类功能的协同程序的替代方案?我见过一些文章中提到的回调,但我不确定代码的外观.

coroutine

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

Visual C++ 2010的Lazy C++(LZZ)规则文件

有没有人为Visual C++ 2010制作了LZZ规则文件,这样你就可以将.lzz文件添加到项目中并在不看中间.cpp和.h文件的情况下编译?

lazy-c++ rules visual-studio-2010

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

管道中的"子解析器" - attoparsec

我正在尝试使用Haskell中的pipes-attoparsec解析二进制数据.管道(代理)涉及的原因是将读取与解析交错以避免大文件的高内存使用.许多二进制格式基于块(或块),它们的大小通常由文件中的字段描述.我不确定这个块的解析器是什么被调用,但这就是我所说的标题中的"sub-parser".我遇到的问题是以简洁的方式实现它们而没有可能很大的内存占用.我想出了两个在某些方面都失败的替代方案.

备选方案1是将块读入单独的字节串并为其启动单独的解析器.简洁,大块将导致高内存使用.

备选方案2是在相同的上下文中保持解析并跟踪消耗的字节数.这种跟踪容易出错,并且似乎会影响组成最终blockParser的所有解析器.对于格式错误的输入文件,在比较跟踪大小之前,还可以通过进一步解析比大小字段所指示的方式来浪费时间.

import Control.Proxy.Attoparsec
import Control.Proxy.Trans.Either
import Data.Attoparsec as P
import Data.Attoparsec.Binary
import qualified Data.ByteString as BS

parser = do
    size <- fromIntegral <$> anyWord32le

    -- alternative 1 (ignore the Either for simplicity):
    Right result <- parseOnly blockParser <$> P.take size
    return result

    -- alternative 2
    (result, trackedSize) <- blockparser
    when (size /= trackedSize) $ fail "size mismatch"
    return result

blockParser = undefined

main = withBinaryFile "bin" ReadMode go where
    go h = fmap print . runProxy . runEitherK …
Run Code Online (Sandbox Code Playgroud)

parsing haskell attoparsec haskell-pipes

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