在clojure中向字符串添加变量

时间:2016-01-06 18:48:18

标签: clojure

只是教自己咒语并在周围徘徊:

我正在尝试创建一个接受参数并将其添加到字符串的函数。作为一个新手,我不知道我是做对还是错,但它不起作用。我想要它说“你好,罗恩!”

(fn 
 [x] 
 ((str "hello, " %1 " !") x) "Ron")

这可能听起来很基本

  

java.lang.RuntimeException:无法解析符号:%   上下文,编译:(NO_SOURCE_PATH:0)

2 个答案:

答案 0 :(得分:1)

%1语法用于匿名函数文字,如下所示:

#(str "hello, " %1)

在您的情况下,参数已命名,因此您可以直接使用它:

(fn [x] (str "hello, " x "!"))

您也可以为该功能命名:

(defn hello [name] (str "hello, " name "!"))

答案 1 :(得分:0)

您可以使用:

  1. 命名函数
  2. (defn hello [name] (str "hello, " name " !")) (hello "Ron")

    1. 匿名函数
    2. ((fn [name] (str "hello, " name " !")) "Ron")

      http://clojure.org/functional_programming