小编Jac*_*son的帖子

使用关联列表而不是记录是否是个好主意?

任何有经验的Erlang程序员都会推荐关联记录吗?

一种情况可能是不同机器上的两个(或更多)节点正在交换消息.我们希望能够独立升级每台机器上的软件.某些升级可能涉及向正在发送的一个(或多个)消息添加字段.似乎使用记录,因为消息意味着你总是必须在锁定步骤中对两台机器进行升级,以便额外的字段不会导致接收器忽略记录.然而,如果您使用类似关联列表(仍然具有"类似记录"API)的内容,尚未升级的接收器仍将成功接收消息并忽略新字段.我意识到这并不总是理想的行为,但往往是这样.此外,假设消息相当小,因此查找时间无关紧要.

假设上述内容有一定道理,我还有以下其他问题:

  • 是否有一个标准(或广泛使用)的图书馆?一些琐碎的谷歌搜索没有发现任何东西.
  • 在其他情况下你会使用关联列表(或类似的东西)吗?

erlang

5
推荐指数
2
解决办法
468
查看次数

Emacs函数在Python模式下为__all__添加符号?

是否存在现有的Emacs函数,__all__在编辑Python代码时添加当前符号的符号?

例如,假设光标是第一个ofoo:

#    v---- cursor is on that 'o'
def foo():
    return 42
Run Code Online (Sandbox Code Playgroud)

如果你做的Mx蟒蛇加至所有(或其他),将添加'foo'__all__.

当我用Google搜索时,我没有看到一个,但是,一如既往,也许我错过了一些明显的东西.

更新

我尝试了Trey Jackson的答案(谢谢,Trey!)并进行了一些修复/增强,以防任何人感兴趣(不再双重插入,__all__如果它还不存在则放入更典型的位置):

(defun python-add-to-all ()
  "Take the symbol under the point and add it to the __all__
list, if it's not already there."
  (interactive)
  (save-excursion
    (let ((thing (thing-at-point 'symbol)))
      (if (progn (goto-char (point-min))
                 (let (found)
                   (while (and (not found)
                               (re-search-forward (rx symbol-start "__all__" symbol-end
                                                      (0+ space) "=" (0+ …

python emacs

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

在实践中,REMOVE是否会返回相同的序列?

是否REMOVE曾经在Common Lisp的任何真正实现返回相同的序列?规范建议允许:

删除的结果可以与序列共享; 如果不需要删除元素,则结果可能与输入序列相同.

例如,SBCL似乎没有这样做,但我只进行了粗略(可能不够)的测试,我想知道其他实现是做什么的.

CL-USER> (defparameter *str* "bbb")
*STR*
CL-USER> *str*
"bbb"
CL-USER> (defparameter *str2* (remove #\a *str*))
*STR2*
CL-USER> (eq *str* *str2*)
NIL
CL-USER> *str* 
"bbb"
CL-USER> *str2*
"bbb"

common-lisp

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

过滤haskell中的列表理解

我有这个列表理解:

[(x,y)| x<-[1..2], y<-[x..3], let z = x+y, odd z]
Run Code Online (Sandbox Code Playgroud)
  1. 正确的结果是[(1,2),(2,3)],但我不明白为什么.什么是过滤器"让z = x + y,奇数z"做什么?其他代码中没有"z",所以我无法理解为什么这会改变一些东西.
  2. 有人可以一步一步解释这里发生的事情.

非常感谢!

haskell list-comprehension filter

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

有没有比这更好的琐碎的Python WebDAV服务器代码片段?

有没有人为一个简单的Python WebDAV服务器有更好的代码片段?下面的代码(这是从一些谷歌的搜索结果中拼凑起来的)出现的Python 2.6下工作,但我不知道是否有人有东西,他们以前也使用过,一点点更多测试,完整.我更喜欢仅限stdlib的代码段而不是第三方软件包.这是为了一些测试代码,所以不必生产值得.

import httplib
import BaseHTTPServer

class WebDAV(BaseHTTPServer.BaseHTTPRequestHandler):
    """
    Ultra-simplistic WebDAV server.
    """
    def do_PUT(self):
        path = os.path.normpath(self.path)
        if os.path.isabs(path):
            path = path[1:]    # safe assumption due to normpath above
        directory = os.path.dirname(path)
        if not os.path.isdir(directory):
            os.makedirs(directory)
        content_length = int(self.headers['Content-Length'])
        with open(path, "w") as f:
            f.write(self.rfile.read(content_length))

        self.send_response(httplib.OK)

def server_main(server_class=BaseHTTPServer.HTTPServer, 
                handler_class=WebDAV):
    server_class(('', 9231), handler_class).serve_forever()
Run Code Online (Sandbox Code Playgroud)

python webdav

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

查找在多个 aws ec2 实例上运行的服务

AWS cli 中是否有命令可以获取在我的 ec2 实例上运行的服务列表?

通常我会单独登录每个 ec2 实例,并使用 Linux 命令(例如“netstat”或“ps -eaf”)进行检查。

大约有 400 个实例,因此如果我手动执行此操作,则会花费相当多的时间。如果有任何 AWS 命令​​可以在不实际登录实例的情况下查找正在运行的服务,那就太好了。

提前致谢。

amazon-ec2 amazon-web-services aws-cli

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