小编use*_*786的帖子

SICP cons-stream

关于SICP 3.5

我自己的实现如下

(define (delay exp) (lambda () exp))

(define (force delayed-obj)
  (delayed-obj))

(define (cons-stream a b) (cons a (delay b)))

(define (stream-car stream) (car stream))


(define (stream-cdr stream) (force (cdr stream)))

(define (take n stream) 
  (if (= n 0)
      (print "0")
      (begin (take (- n 1) (stream-cdr stream))
             (print n))))

(define (make-stream-enum-interval low high)
  (if (> low high)
      '()
      (begin (print low) (cons-stream low (make-stream-enum-interval (+ low 1) high)))))
Run Code Online (Sandbox Code Playgroud)

实际上我发现它并没有真正推迟.当我执行时(定义范围-10到100(make-stream-enum-interval 10 100)).我希望在控制台中只能打印10个.虽然它是10 ..... 100

我的代码有什么问题吗?或者,如果需要打印10 ... 100,那么我们可以说结构是(缺点10(延迟缺点11(延迟缺点12(延迟...... 100)))如果是这样,那么我们需要更多的内存?

scheme sicp cons

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

Channel.isActive() 如何在 netty 中工作?

我正在使用 netty 4.x,我终于发现它调用了

public boolean isActive() {
    SocketChannel ch = javaChannel();
    return ch.isOpen() && ch.isConnected();
}
Run Code Online (Sandbox Code Playgroud)

我可以用它来检查客户端和服务器之间的连接是否可读/可写吗?

如果答案是肯定的,那么我相信 isActive use sth。像心跳一样检查客户端的状态。但是当我抓取 tcp 数据包时,我找不到任何数据包通过wireshark过滤器 tcp.port==12093(这是我的服务器端口)作为心跳。

任何建议都有帮助。

sockets tcp wireshark netty

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

标签 统计

cons ×1

netty ×1

scheme ×1

sicp ×1

sockets ×1

tcp ×1

wireshark ×1