小编ali*_*oar的帖子

Lisp 中的定点组合器

;; compute the max of a list of integers

(define Y
  (lambda (w)
    ((lambda (f)
       (f f))
     (lambda (f)
       (w (lambda (x)
            ((f f) x)))))))

((Y
  (lambda (max)
    (lambda (l)
      (cond ((null? l) -1)
            ((> (car l) (max (cdr l))) (car l))
            (else (max (cdr l)))))))
 '(1 2 3 4 5))
Run Code Online (Sandbox Code Playgroud)

我想了解这个结构。有人能给这段代码一个清晰简单的解释吗?

例如,假设我忘记了 Y 的公式。我如何记住它,并在使用它很久之后重现它?

lisp scheme combinators y-combinator

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

获取处理器的内存粒度

如何在C中获取CPU的内存粒度

假设我想分配一个数组,其中所有元素都正确内存对齐。我可以将每个元素填充到特定大小 N 来实现这一点。我怎么知道N的值?

注意:我正在尝试创建一个内存池,其中每个插槽都是内存对齐的。任何建议将不胜感激。

c memory-management memory-alignment granularity

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

Python中F(x)和F x之间的差异

在Python中,可以调用del x或者del(x).我知道如何定义一个名为F(x)的函数,但我不知道如何定义一个名为cal的函数del,没有元组作为参数.

F x和之间的区别是什么F(x),如何定义一个可以在没有括号的情况下调用的函数?

>>> a = 10
>>> a
10
>>> del a             <------------ can be called without parenthesis
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> a = 1
>>> del (a)
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> def f(x): 1
... 
>>> f (10) …
Run Code Online (Sandbox Code Playgroud)

python

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

在python中拆分列表

我有一个对象列表,我希望得到一个对象列表列表,使用另一个列表中的对象进行拆分,如下所示:

l = ['x',1,2,3,'a',5,6,1,7]
Run Code Online (Sandbox Code Playgroud)

和另一个对象列表

s = ['a', 1, 4]
Run Code Online (Sandbox Code Playgroud)

我希望得到这样的结果:

[ ['x'], [1, 2, 3], ['a', 5, 6], [1, 7] ]
Run Code Online (Sandbox Code Playgroud)

有一个很好的/ pythonic方式吗?

编辑:

我希望每个结果列表的头部都是元素s,并且所有这些列表都保持初始列表的元素的顺序相同.

python

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

使用matplotlib更改背景*而不使用*框架

鉴于此代码,

from pylab import *
ion()
axes(frameon = 0, aspect = 1, polar = 1)
grid (True)
Run Code Online (Sandbox Code Playgroud)

我得到了包含轴的窗口,我可以在那里绘制我需要的东西.

我想将此窗口的背景从标准灰色更改为另一种颜色.

我不想使用框架.

python matplotlib

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

java 8中lambda函数的语法

我是java的新手,我不知道如何编写一个简单的lambda函数.我试着阅读一些文章,比如这篇文章,但我没有设法编译,因为我得到语法错误.

我希望用F这个代码替换函数?-function

class Test {
  private int N;
  public Test (int n) {
      N = n;
  }

  private int f (int x) {                   /* <== replace this */
      return 2*x;
  }

  public void print_f () {
      for (int i = 0; i < this.N; i++)
          System.out.println (f(i));        /* <== with lambda here*/
  }

  public static void main (String[] args) {
      int n = 10;
      if (args.length == 1)
          n = Integer.parseInt(args[0]);
      Test t = new …
Run Code Online (Sandbox Code Playgroud)

java lambda anonymous-function java-8

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

draw_networkx_labels的可用"font-family"条目

我有这个代码:

    labels_params = {"labels":{n: "" if n[0] == "." else n for n in G.nodes () },
                     "font_family":"sans-serif",
                     "alpha":.5,
                     "font_size":16 }

    draw_networkx_labels (G, pos, **labels_params)
Run Code Online (Sandbox Code Playgroud)

我的问题是我希望能够在输出图形中显示超过2种字体.

我想知道如何检测"font_family"的所有可能条目.

我从Networkx浏览了FontManager的代码,我只看到了"sans-serif".

我在Ubuntu下的X11工作.

ubuntu matplotlib font-family networkx

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

使用sleep()或无限循环来等待事件会更好吗?

我目前正在研究与SSH服务器通信的客户端.一切都运行良好,但是,因为服务器回答很慢,我不得不等待它发送数据.我有两个选择,我想就什么是等待服务器的最有效方法提出建议.

选择#1:

while (!(ssh_channel_poll(*sshChannel,0)))
 ;
Run Code Online (Sandbox Code Playgroud)

选择#2:

while (!(ssh_channel_poll(*sshChannel,0)))
  sleep(1);
Run Code Online (Sandbox Code Playgroud)

c sleep libssh

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

Eclipse:scala工作表中的"输出超过截止限制"

如何在Eclipse中增加输出行的数量,以便在scala工作表中不再收到此消息:

Output exceeds cutoff limit. 
Run Code Online (Sandbox Code Playgroud)

eclipse scala

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

使用gdb加载ctypes的调试库

我在python中加载了一个C库X.so,我用这些标志编译.

GDBFLAGS = -gdwarf-2 -g3 -O0 -ggdb
Run Code Online (Sandbox Code Playgroud)

我使用ctypes从python中调用它的一些非静态函数.

我希望调试C库X.so. X.的某些功能有时会崩溃,而不是一直崩溃,我希望使用gdb监视执行.

我用linux-gnu.我该如何调试ctypes?

python debugging ctypes gdb

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