小编nic*_*ame的帖子

有没有任何纯粹的功能方案或Lisps?

我已经使用了一些函数式编程语言,并且非常喜欢Lisps使用的s-expr语法(特别是Scheme).

我也看到了使用纯函数式语言的优势.因此:

是否有任何纯粹的功能方案(或一般的Lisps)?

scheme haskell functional-programming referential-transparency

31
推荐指数
7
解决办法
8360
查看次数

如何使用Racket宏定义函数?

我正在尝试编写一个宏来定义具有相关函数的特殊数据结构类.

我知道这是可能的; 它在核心语言本身中多次完成.

作为一个具体的例子,我如何define-struct在Scheme本身中定义宏.它需要创造make-struct,struct-<<field>>等功能.

我试过这样做define,但是,这只定义了宏的词法范围中的函数.

如何在宏中实际定义函数?

macros scheme racket

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

在沙盒Pypy中使用套接字模块

我正在尝试允许使用Pypy沙箱的子进程使用有限协议与父进程进行通信.

在查看pypy/pypy/translator/sandbox/sandlib.pyPypy附带的源代码之后,似乎有一个VirtualizedSocketProc允许os.open调用打开套接字的代码.我已经改变了代码的一些功能(例如,允许在有限端口上进行TCP连接),但很少有变化.但是,我无法实际导入Pypy的socket模块,因为它需要一个不存在的_socket模块,它似乎位于代码的解释器级部分.

我正在努力做到可行吗?如果是这样,我如何导入套接字模块?如果没有,我还能做什么?

python sockets pypy sandbox

6
推荐指数
1
解决办法
593
查看次数

Python中每个值具有多个键的字典

我正在尝试创建一个很好的接口来访问数据集,其中每个值都有几个可能的键.例如,假设我为数据集中的每个值都有一个数字和一个名称.我希望能够使用数字或名称访问每个值.

我考虑了几种可能的实现:

  1. 使用两个单独的词典,一个用于按编号组织的数据值,另一个用于按名称组织的数据值.

  2. 只需将两个键分配给字典中的相同值即可.

  3. 创建将每个名称映射到相应数字的字典,反之亦然

  4. 尝试创建将每个名称映射到数字等的哈希函数(与上述相关)

  5. 创建一个对象来封装所有三个数据,然后使用一个键将字典键映射到对象,只需搜索字典以将另一个键映射到对象.

这些都不是理想的.第一个似乎是丑陋和不可维护的.第二个似乎也很脆弱.第三个/第四个似乎是合理的,但似乎需要很多手动规范或过于复杂的实现.最后,第五个失去了其中一个查找的恒定时间性能.

在C/C++中,我相信我会使用指针来引用来自不同键的同一段数据.

我知道问题非常类似于非键列的数据库查找问题,但是,我希望(如果可能的话)维护Python字典的近似O(1)性能.

实现这种数据结构的最Pythonic方法是什么?

python map data-structures

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