我发现Common Lisp Object System(CLOS)优于传统的(基于类的)面向对象系统.CLOS的维基百科条目提到了两种方法之间的差异 - 主要是CLOS中的多个调度和类和方法的分离.这些仅仅是CLOS的差异或真正优势吗?
根据Kernel#require的文档,该方法返回一个布尔值.我在IRB会话中注意到,对于某些文件,require返回一个数组.
ruby-1.8.7-p330 :001 > require 'net/http'
=> true
ruby-1.8.7-p330 :002 > require 'date'
=> true
ruby-1.8.7-p330 :003 > require 'lib/data_provider'
=> ["DataProviders"]
Run Code Online (Sandbox Code Playgroud)
返回的数组包含data_provider.rb中定义的模块的名称:
module DataProviders
module Cached
class Foo
# ...
end
end
class Foo
# ...
end
end
Run Code Online (Sandbox Code Playgroud)
这是我做错事或一些无证行为的标志require吗?
给定一个像这样的JSON字符串:
{"Locations":
{"list":
[
{"description": "some description", "name": "the name", "id": "dev123"},
{"description": "other description", "name": "other name", "id": "dev59"}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我想从解析上面字符串的函数返回一个"id"列表.JSON.parseFull()(来自scala.util.parsing.json)给我一个类型的结果Option[Any].Scala REPL显示它Some(Map(Locations -> Map(list -> List(Map(id -> dev123, ...和Scala的初学者一样,我对于接近它的方式感到困惑.
Scala API文档建议"将其视为集合或monad并使用map,flatMap,filter或foreach".顶级元素是一个选项[Any]但是应该是一些Map应该包含单个键"Locations"的Map,它应该包含一个最终是List的键"list".Scala编写一个检索"id"的函数的惯用方法是什么?
Wikibook for Common Lisp表示,fixnums保证能够保存[-2 15中的整数值; 2 15 -1]范围,它是依赖于实现的.*features*可以告诉我主机是32位还是64位但是Lisp 中的fixnum 不能覆盖整个32/64位.有没有办法以编程方式检查CL实现中fixnum的大小?
我经常在我的Rails script/console会话中使用短代码片段,例如
>> app.get 'admin/login'
>> app.response.body
# look up 'authenticity_token' in the login form's HTML
>> login_data = { "authenticity_token" => "token_value",
"username" => "admin",
"password" => "admin_password" }
>> app.post 'admin/login', login_data
Run Code Online (Sandbox Code Playgroud)
我想为控制台制作一个帮助方法/扩展,所以我只是使用
>> app.admin_logon
Run Code Online (Sandbox Code Playgroud)
有哪些可能的解决方案来实现这一目标?