#32 楼 @bhuztez prolog 看上去的确很牛啊,这几天开始看 prolog 了。ruby 真不方便干这些事,这是我的 ruby 方案,有点费劲:
def make_changes(need, coins, feed = {})
valid_coins = coins.keys.select{|c| c <= need && coins[c] > 0 }.sort.reverse
valid_coins.each do |c|
feed[c] ||= 0
feed[c] += 1
return feed if c == need
coins[c] -= 1
f = make_changes( need - c, coins, feed)
return f if f
end
end
#> make_changes 160, { 1 => 4, 5 => 1, 10 => 1, 50 => 1, 100 => 1}
=> {100=>1, 50=>1, 10=>1}
#> make_changes 160, { 1 => 4,5 => 2, 10 => 0, 50 => 1, 100 => 1}
=> {100=>1, 50=>1, 5=>2}
简单的问题被 rvm rbenv 弄得恶心至极,不就切换一下环境变量的事!
这块真的很恶心!幸好还有 EC2 EMR。
这确实是 ruby 变态的地方:
class A
def val=(v)
end
def val
end
end
a = A.new
a.val = 100
# => 100
a.val
# => nil
更变态的来了:
class A
def val=(v)
@member = v.upcase
end
def val
@member
end
end
a = A.new
a.val = 'hello'
# => 'hello'
a.val
# => 'HELLO'
这个跟平常思维不一致!
你们可能会说,val 只是个方法,方法可以返回任何东西。
但我还是觉得这跟玩似的!
retina 看了下也不错。
现在流行 remote ?
只是用来备份数据,稳定。速度在国内肯定不行。
像 lisp 这样的语言活几百年不奇怪呀。 王垠 blog 写的 最牛比的 chez scheme, 貌似被 Cisco 收购了,你觉得思科拿 scheme 来干吗?(chez scheme 官网说已是 cisco xx 的一部分) 为什么好的 lisp 编译器都价格昂贵?
settingslogic gem ?
common lisp
e17 有好多个进程呢,你看哪个只占 70M ?
怎么会有报错?你的版本不同 linux 的吧,试试这个:https://github.com/railwaycat/emacs-mac-port
这是我的 emacs:
没有什么特别配置,就改下颜色,用 elpa 管理扩展。
爱折腾就把你的应用的核心部分用 C/C++ 写成动态库通过 gem 加载。
类似 LDAP ?
#44 楼 @baxiaopeng 你可以这么理解:&object 其实就是从 object 返回 Proc 的语法糖。
rvm 过度设计。 rbenv 刚好,配合 bundler. gem install 默认可以安装多个不同版本,加上 rbenv 切换 ruby 版本刚好。 讨厌 gemset 这样的概念和设计。
很少人会关注 new x,y 会返回什么吧? 这个测试让人蛋疼。 我觉得关键还是 &Array 相当于
if Array.is_a?(Proc)
Array
else
Array.to_proc
end
map { |x| Array.to_proc.call x }