用你自己的话来解释,什么是抢占以及它对(linux)内核意味着什么?
拥有可抢占内核有哪些优缺点?
在http://lisperati.com/haskell/ht4.html上,作者显示了从简单的SVG文件中读取多边形的函数.我理解大部分代码,但我想知道是否可以重写该函数
let readPoint :: String -> Point
readPoint s | Just [x,y] <- matchRegex (mkRegex "([0-9.]+),([0-9.]+)") s = (read x,read y)
Run Code Online (Sandbox Code Playgroud)
以更易理解的形式.我发现这条线有点令人困惑,因为守卫应该对函数的参数进行操作(在本例中为"readPoint"),但是这里的守卫显然是对matchRegex的结果进行操作.
所以有人可以解释这背后的魔力吗?
这可以改写成更容易理解的形式吗?
如何在不使用任何循环的情况下修改集合中的值以获取具有修改值的新集合?
例如,我有一个Collection<String>并且想要用括号括起所有字符串.
有了循环,我会这样做:
Iterable<String> collection = getCollection();
ArrayList<String> newCollection = new ArrayList<String>();
for(String str : collection)
newCollection.add("(" + str + ")");
Run Code Online (Sandbox Code Playgroud)
必须有一个更优雅的解决方案.
编辑:允许使用第三方实用程序:)
我正在考虑使用Apache solr在新项目中索引数据.数据由不同的独立类型组成,这意味着有例如
索引.我应该为每种类型使用不同的索引还是只使用一个索引更有意义?如何使用许多索引影响性能?或者还有其他可能实现这一目标吗?
谢谢.
在另一个问题中有人询问如何更换Umlaute.接受的问题是以下代码:
# encoding: utf-8
foo = "ich bin doch nicht blöd, mann!".gsub(/[äöü]/) do |match|
case match
when "ä" 'ae'
when "ö" 'oe'
when "ü" 'ue'
end
end
puts foo
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行它时,输出是:
$ ruby /tmp/test.rb
ich bin doch nicht bld, mann!
Run Code Online (Sandbox Code Playgroud)
所以Umlaute显然不会被取代.有什么我想念的吗?我正在使用Ruby 1.9.3p362(2012-12-25修订版38607)[x86_64-linux]