小编Jon*_*röm的帖子

在Swift中使用索引进行映射或缩小

有没有办法在Swift 中mapreduce在Swift中获取数组的索引?我正在寻找像each_with_indexRuby 这样的东西.

func lunhCheck(number : String) -> Bool
{
    var odd = true;
    return reverse(number).map { String($0).toInt()! }.reduce(0) {
        odd = !odd
        return $0 + (odd ? ($1 == 9 ? 9 : ($1 * 2) % 9) : $1)
    }  % 10 == 0
}

lunhCheck("49927398716")
lunhCheck("49927398717")
Run Code Online (Sandbox Code Playgroud)

我想摆脱上面odd变量.

functional-programming swift

124
推荐指数
3
解决办法
4万
查看次数

在多个集合上均匀分布对象

场景是存在n不同大小的对象,不均匀地分布在m桶上.存储桶的大小是它包含的所有对象大小的总和.现在碰巧桶的大小变化很大.

如果我想将这些对象均匀地分布在这些桶上,以便每个桶的总大小大致相同,那么什么是一个好的算法呢?如果算法倾向于在完全均匀的扩展上减少移动大小,那将是很好的.

我在Ruby中有这种天真,无效和错误的解决方案.

buckets = [ [10, 4, 3, 3, 2, 1], [5, 5, 3, 2, 1], [3, 1, 1], [2] ]

avg_size = buckets.flatten.reduce(:+) / buckets.count + 1

large_buckets = buckets.take_while {|arr| arr.reduce(:+) >= avg_size}.to_a

large_buckets.each do |large|
  smallest = buckets.last

  until ((small_sum = smallest.reduce(:+)) >= avg_size)
    break if small_sum + large.last >= avg_size
    smallest << large.pop
  end

  buckets.insert(0, buckets.pop)
end

=> [[3, 1, 1, 1, 2, 3], [2, 1, 2, 3, 3], [10, 4], …
Run Code Online (Sandbox Code Playgroud)

algorithm

23
推荐指数
3
解决办法
9565
查看次数

CoffeeScript中的嵌套数组解析

在Python中

def cross(A, B):
   "Cross product of elements in A and elements in B."
   return [a+b for a in A for b in B]
Run Code Online (Sandbox Code Playgroud)

如果用两个数组(或字符串)调用它,则返回一维数组.

但在CoffeeScript中

cross = (A, B) -> (a+b for a in A for b in B)
Run Code Online (Sandbox Code Playgroud)

返回一个二维数组.

  1. 你认为这是CoffeeScript的设计还是一个bug?
  2. 如何在CoffeScript中展平数组?

list-comprehension coffeescript

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

用于在Visual Studio中获取最新版本的键盘快捷方式

我想要一个键盘快捷键来获取Visual Studio 2012中当前解决方案的最新版本(递归).我们正在使用TFS.

我试图映射

File.GetLatestSolutionFiles
File.GetLatestVersion
File.TfsGetLatestVersion
Run Code Online (Sandbox Code Playgroud)

但没有任何反应.有任何想法吗?

作为一种解决方法,我也试过并尝试将键盘快捷键映射到:

Tools.shell """c:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\TF.exe""" get $/OUR/REPOSITORY/Main /recursive
Run Code Online (Sandbox Code Playgroud)

这是我想要键盘快捷键的命令: 在此输入图像描述

keyboard-shortcuts visual-studio

17
推荐指数
3
解决办法
4962
查看次数

如何检查Ruby中的视图中的对象是否为零?

我想只在设置了一个名为@foo的对象时显示一行文本.在我看来,我正在尝试这样的事情:

<% if !@foo.new_record? || !@foo.nil? %>
    Foo is not a new record or nil
<% end %>
Run Code Online (Sandbox Code Playgroud)

但这失败了,返回You have a nil object when you didn't expect it! 我很确定这是因为该new_record?方法而发生的.如何在不导致错误的情况下检查某些内容是否为新记录或为零?在PHP中,它可以通过询问来实现,if(!empty($foo))但即使是empty?rails中的方法也会导致返回相同的错误.

有任何想法吗?

ruby ruby-on-rails

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

运算符作为C#中的方法参数

我不认为使用运算符作为C#3.0中方法的参数是可能的,但有没有办法模拟它或某些语法糖,使它看起来像是在发生什么?

我问,因为我最近在C#中实现了画眉组合,但在翻译Raganwald的Ruby示例时

(1..100).select(&:odd?).inject(&:+).into { |x| x * x }
Run Code Online (Sandbox Code Playgroud)

其中写着"从1到100取数字,保留奇数,取这些数字的总和,然后回答那个数字的平方."

我没有看到Symbol#to_proc的东西.这就是&:在上面select(&:odd?)inject(&:+)上面.

c# ruby lambda extension-methods

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

迭代并返回连续n个元素的数组

在Ruby中有一个each_conson Enumerable.它的工作原理如下

(1..5).each_cons(3) {|n| p n}
Run Code Online (Sandbox Code Playgroud)

[1,2,3]
[2,3,4]
[3,4,5]

我想在C#中这样做.LINQ会很好.

下面做了类似的事情,但是它循环了一对多,并且它也被硬编码以仅返回两个元素

var ints = new int[] { 1, 2, 3, 4, 5, 6, 7 };
var cons = ints.Select((o, i) =>
            new int[]{ ints[i], i == ints.Length - 1 ? 0 : ints[i + 1] });
Run Code Online (Sandbox Code Playgroud)

如果它可以作为原始数组的迭代器创建而不必创建大量数组,那将是很好的.

c# linq ienumerable extension-methods

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

Ruby命令行one-liners sub vs. scan

我怎么能这样做

ruby -pe "sub /.*{((\d+\.){3}).*/, '\115'" < file.txt
Run Code Online (Sandbox Code Playgroud)

但如果我尝试scan而不是sub我得到

-e:1:在<main>': undefined method扫描'for main:Object(NoMethodError)

这是令人困惑的,因为它们sub都不是一种方法Object.

我也尝试过Perl方式,类似于

ruby -ne "/.*/; puts $1" <file.txt
Run Code Online (Sandbox Code Playgroud)

但那并没有飞.

我在哪里可以找到涵盖此文档的文档?

ruby

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

没有外键的JPA协会

是否可以在没有JPA的情况下设置ManyToOne关联在数据库中创建外键?

这些表由另一个系统拥有,并以异步方式填充.因此,我们不能在数据库中拥有FK.最终仍然存在一种关系.

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
        @JoinColumn(name="`Order Type`", referencedColumnName = "`Order Type`", insertable = false, updatable = false),
        @JoinColumn(name="`Order No`", referencedColumnName = "`No`", insertable = false, updatable = false)
}, foreignKey = @javax.persistence.ForeignKey(value = ConstraintMode.NO_CONSTRAINT))
private OrderHeader orderHeader;
Run Code Online (Sandbox Code Playgroud)

问题是JPA SchemaUpdate尝试添加FK,即使ConstraintMode.NO_CONSTRAINT

[error] ohthSchemaUpdate - 无法添加外键约束

我们可以忽略它,如果它没有使其余的陈述失败

[error] ohthSchemaUpdate - 语句关闭后不允许任何操作.

我们正在使用hibernate-entitymanager 4.3.7.Final和JPA 2.1.

hibernate jpa

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

使用委托从C#调用IronRuby

是否可以使用委托作为参数从C#调用IronRuby方法,以便yield这样做?

以下给出了错误的参数数量(1表示0)异常.

Action<string> action = Console.WriteLine;
var runtime = Ruby.CreateRuntime();
var engine = runtime.GetEngine("rb");
engine.Execute(@"
                 class YieldTest
                   def test
                     yield 'From IronRuby'
                   end
                 end
                ");
object test = engine.Runtime.Globals.GetVariable("YieldTest");
dynamic t = engine.Operations.CreateInstance(test);
t.test(action);
Run Code Online (Sandbox Code Playgroud)

c# delegates ironruby yield

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