小编Kap*_*001的帖子

将传递给方法的块传递给Ruby中的另一个方法

我正在尝试编写ruby keep_ifdelete_if数组方法的克隆.这是我的代码.

module Strain
  def keep
    self.inject([]) do |extracts, element|
      yield(element) ? extracts << element : extracts 
    end
  end

  def discard
    self.inject([]) do |extracts, element|
      !yield(element) ? extracts << element : extracts
    end
  end
end

class Array
  include Strain
end
Run Code Online (Sandbox Code Playgroud)

这有效.但我想做的事情如下:

def discard
  self - self.keep &block
end
Run Code Online (Sandbox Code Playgroud)

期望的行为:

[1, 2, 3].discard { |number| number < 2 }
# => [2, 3]
Run Code Online (Sandbox Code Playgroud)

所以我需要传递传递给discard方法的块,然后传递给keep方法.我该如何实现这一目标?

ruby block

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

为什么矩阵乘法在具有7个内核的工作站上比在我的笔记本电脑上运行速度慢?

我运行了以下matlab代码:

rng(1)
matrix_size = 200;
iterations = 100000;
A = rand(matrix_size);
B = rand(matrix_size);

profile on
for i = 1:iterations
  A * B;
end
profile off
Run Code Online (Sandbox Code Playgroud)

在我的MacAir(Intel(R)Core(TM)i5-4260U CPU @ 1.40GHz)上,这需要39秒.在具有7核(Intel(R)Xeon(R)CPU E5-2687W v4 @ 3.00GHz)的工作站上,这需要62秒.

我没有说明-singleCompThread.工作站有12个核心,但有5个单线程进程在运行.我(差不多)有7个核心给自己.他们一直都是最大限度的.

怎么会这样?

运行上面的代码时-singleCompThread,它在54s内完成.

parallel-processing matlab

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

在崇高文本3中放置.tmLanguage的位置?

我在使用RegExp时遇到Ruby语法高亮问题.

有人建议我用一些额外的代码更新我的Ruby.tmLanguage文件.

问题是,我无法在我的计算机上找到此文件.在sublime_text_3/Packages中我只看到.sublime-package文件,我无法使用sublime文本正确打开; 它只显示数字.

我是否必须自己创建此文件,如果是,那么在哪里?

或者这在sublime text 3中的工作方式不同(相对于2,这可能是此解决方案发布时的最新版本).

参考其他Ruby.tmLanguage代码:https://gist.github.com/elgalu/3921521

ruby regex syntax highlighting sublimetext3

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