首页 文章
  • 21 votes
     answers
     views

    Rust中的延迟序列生成

    如何创建其他语言称为惰性序列或“生成器”函数? 在Python中,我可以使用 yield ,如下面的示例(来自Python的文档),懒洋洋地生成一个可以以不使用中间列表的内存的方式迭代的序列: # a generator that yields items instead of returning a list def firstn(n): num = 0 while num &l...
  • 14 votes
     answers
     views

    Clojure印刷懒人序列

    我正在尝试打印出我的二叉树,但Clojure让我很难正确打印出序列 . 所以,我有一个节点列表 '(1 2 3) 例如 . 在每次迭代中,我想在每个元素之前和之后打印出具有多个空格的节点 . (defn spaces [n] (apply str (repeat n " "))) 太好了,这似乎有效 . 所以,假设我有一个列表 nodes '(:a :b :c) 我想...
  • 0 votes
     answers
     views

    迭代时将thunk转换为序列

    我有一个服务器API,它返回一个事物列表,并且一次只能包含25个项目 . 对于每个响应,我们获得一个项目列表,以及一个“令牌”,我们可以使用它来进行下一个服务器调用以返回下一个25,依此类推 . 请注意,我们使用的是一个用可靠的旧可变Java编写的客户端库,并不能很好地适应所有Scala的功能组合模式 . 我正在寻找一种方法来返回所有服务器项目的延迟评估序列,通过在本地项目列表用尽时使用最新令牌进...
  • 2 votes
     answers
     views

    类似的python groupby在haskell

    在python中有groupby函数 . 它的类型可以用像这样的haskell表示 groupby :: a->b->[a]->[(b, [a])] 因为需要对数据进行排序,我们可以将它的运行时间视为 O(n*log(n)) . 我可能不是唯一一个对此不满意的人,所以我发现这个library这个groupby的实现需要两次传递输入序列 . 所以我认为它的运行时间是 O(n) ,...
  • 0 votes
     answers
     views

    Ruby中的Lazy Fibonacci序列

    如果我想创建一个迭代的懒惰Fibonacci序列来自Python,我可以这样做: def fib(): a = 1 b = 2 yield a yield b while True: yield a + b tmp = a a = b b = tmp + b 通过简单地添加前两个元素,抓取 n...

热门问题