标签: xbase

Python:在大型dbf(xbase)文件中快速查询

我有一个大的DBF文件(~700MB).我想使用python脚本从中选择几行.我已经看到dbfpy是一个很好的模块,允许打开这种类型的数据库,但是现在我还没有找到任何查询功能.迭代python中的所有元素实在太慢了.

我可以在合理的时间内从python做我想做的事吗?

python performance dbf xbase python-3.x

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

访问块和Y组合器内的外部变量

我希望你们都没事.我正在海港实施定点Y-combinator,我遇到了一些麻烦.嗯,Y-组合子可以由lambda演算定义为:

Y = (?h.?F.F(? x.((h(h))(F))(x))) (?h.?F.F(? x.((h(h))(F))(x)))

我正试图通过性能问题对Y-combinator应用memoization.我目前的实施是:

Function YMem( bF, aCache )
   Local xAnswer
    If !lCache ; lCache := { } ; EndIf
    Return { |Arg| Iif( aCache[ Arg ] ;
        , /* then      */ aCache[ Arg ];
        , /* otherwise */ aCache[ Arg ] := ;
            Eval( Eval( bF, { |N| Eval( Eval( YMem, bF, aCache ), N ) } ), Arg ) ) }
Run Code Online (Sandbox Code Playgroud)

基本上,我不能在块内使用语句,但我可以使用表达式,它工作得很好.我正在避免无限递归,并且限制通过0到无限.

直到这个时候,它编译得很好,但是当我试图访问外部块的变量时,Harbour在Face中踢我!

为了测试的Y组合子的实现,我尝试应用斐波那契序列的简单implemetation,但是当我返回接收参数的块G,隐式返回接收参数的块N,Gbecames对我来说不可用,编译器说我说"外部代码块变量是遥不可及的". …

lambda-calculus y-combinator xbase

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