我一直在使用术语coll,并且刚刚假设它意味着收集或列表.但我们都知道他们对假设的看法.只是想找一点澄清.
我有一系列功能,它们都做不同的事情但传递相同的数据.假设我有以下作为参数向量.
[{:keys [x y vx vy x-min x-max y-min y-max] :or {x-min 0 x-max c-width y-min 0 y-max c-height}}]
Run Code Online (Sandbox Code Playgroud)
基本上你不想重复多次的事情.我有一个想法是做一些像.
(def func-args [x y z])
(defn func func-args (+ x y z))
Run Code Online (Sandbox Code Playgroud)
然后,如果我有类似的功能,我可以重新使用func-args.但是,前一个示例的第一行引发了无法解析符号x的错误.
我有一个函数返回看起来像这样的结果:
(({:one 1}) ({:two 2} ({:three 3} {:four 4})))
Run Code Online (Sandbox Code Playgroud)
是否有一种简单/惯用/有效的方法将上面的列表展平为一个列表:
({:one 1} {:two 2} {:three 3} {:four 4})
Run Code Online (Sandbox Code Playgroud)
map
忽略列表级嵌套的函数,并在叶子上运行?reduce
而不是map
)这是我的clojure代码:
(defn salutation-adder-maker
([salutation call]
(def call (salutation-adder-maker salutation)))
([salutation]
#(str % salutation))
)
(salutation-adder-maker "-Thanks!" salutation1)
(salutation1 "Help me!")
Run Code Online (Sandbox Code Playgroud)
底部的两行代码给出了无法解析符号的错误salutation1
.函数编译很好,但这是因为它将函数定义为call
.因此以下代码有效:
(call "Help me!")
Run Code Online (Sandbox Code Playgroud)
它吐了出来
Help me-Thanks!
Run Code Online (Sandbox Code Playgroud)
而不是salutation1
具有该功能的功能.如何更改代码以便salutation1
执行与call
当前相同的操作?
我希望能够传递两个参数:
例如:
(salutation-adder-maker "-Have a good day!" day_salutation)
(day_salutation "I will talk to you later")=>"I will talk to you later-Have a good day!"
Run Code Online (Sandbox Code Playgroud) 我有两个代码片段,我认为这两个代码片段都会产生警报.但是,第一个结果为none,而第二个执行警报.
(map #(.alert js/window %) ["hey1" "hey2"])
Run Code Online (Sandbox Code Playgroud)
这个轻微的修改按预期打印(零nil),以及修复警报问题.问题是为什么?
(print (map #(.alert js/window %) ["hey1" "hey2"]))
Run Code Online (Sandbox Code Playgroud)
另一个奇怪的观察是,第一个代码片段来自浏览器 - repl,但不是在键入代码时.
地图功能副作用是免费的,但打印不是吗?也许我不知道一些核心代码优化?
解决方法和答案都很受欢迎.如果您需要更多信息,请在评论中告诉我.
[org.clojure/clojurescript"1.8.51"]
BOOT_CLOJURE_VERSION = 1.7.0
BOOT_VERSION = 2.5.5
java版"1.8.0_101"
说明:Ubuntu 14.04.4 LTS
我正在尝试按照这里的教程学习rails .但是,当我进入创建模型的部分并运行此命令时:
bin/rails generate model Article title:string text:text
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
/usr/lib/ruby/vendor_ruby/spring/application.rb:152:in `serve': undefined method `cleanup!' for ActionDispatch::Reloader:Class (NoMethodError)
from /usr/lib/ruby/vendor_ruby/spring/application.rb:131:in `block in run'
from /usr/lib/ruby/vendor_ruby/spring/application.rb:125:in `loop'
from /usr/lib/ruby/vendor_ruby/spring/application.rb:125:in `run'
from /usr/lib/ruby/vendor_ruby/spring/application/boot.rb:18:in `<top (required)>'
from /usr/local/lib/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/lib/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from -e:1:in `<main>'
Run Code Online (Sandbox Code Playgroud)
这是我的第二次经历,所以我知道我已经遵循了所有步骤.我知道在哪里寻找解决方案或知道解决方案是什么?这真让我陷入困境.
版本: