Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String clojure-在组合字符串和变量时避免额外的空白_String_Clojure_Println_Removing Whitespace - Fatal编程技术网

String clojure-在组合字符串和变量时避免额外的空白

String clojure-在组合字符串和变量时避免额外的空白,string,clojure,println,removing-whitespace,String,Clojure,Println,Removing Whitespace,我正在编写一个程序,它使用printl str返回汇编语言的命令。我需要在我的代码中使用变量,我遇到了这个问题,函数将在我不需要的地方返回额外的空白: (defn pushConstant [constant] (println-str "@" constant "\r\nD=A\r\n@SP\r\nA=M\r\nM=D\r\n@SP\r\nM=M+1")) 其中,假设常数=17,而不是 @17 D=A @SP A=M M=D @SP M=M+1 我有: @ 17 D=A @SP A=

我正在编写一个程序,它使用printl str返回汇编语言的命令。我需要在我的代码中使用变量,我遇到了这个问题,函数将在我不需要的地方返回额外的空白:

(defn pushConstant [constant]
   (println-str "@" constant "\r\nD=A\r\n@SP\r\nA=M\r\nM=D\r\n@SP\r\nM=M+1"))
其中,假设常数=17,而不是

@17
D=A
@SP
A=M
M=D
@SP
M=M+1
我有:

@ 17
D=A
@SP
A=M
M=D
@SP
M=M+1

这对于我的汇编代码来说是有问题的。我有很多这样的问题。我很高兴听到关于如何避免字符串和变量之间出现额外空格的建议。

坦率地说,我将实现以下内容:

(defn pushConstant [constant]
  (->> [(str "@" constant)
        "D=A"
        "@SP"
        "A=M"
        "M=D"
        "@SP"
        "M=M+1"]
       (interpose "\r\n")
       (apply str)))
这样,您就不会有一个大的难看的格式字符串,而是将您的操作分解为小的、可读的部分


这就是说,这里对您有影响的部分是
(str“@”constant)
,它将您的
@
与参数结合起来,而不添加空格。

坦白地说,我将实现它,使其看起来更像以下内容:

(defn pushConstant [constant]
  (->> [(str "@" constant)
        "D=A"
        "@SP"
        "A=M"
        "M=D"
        "@SP"
        "M=M+1"]
       (interpose "\r\n")
       (apply str)))
这样,您就不会有一个大的难看的格式字符串,而是将您的操作分解为小的、可读的部分


这就是说,这里对您有影响的部分是
(str“@”constant)
,它将
@
与参数结合起来,而不添加空格。

使用
str
创建字符串,该字符串只连接(println交错空格):


使用仅串联(println交错空格)的
str
创建字符串:


我将生成并传递汇编指令的列表或序列,直到最后一次可能的时候才处理字符串。更容易处理高级数据结构,而不是需要解析以具有语义意义的字符串缓冲区。我将生成并传递汇编指令的列表或序列,直到最后一次才处理字符串。更容易处理更高级别的数据结构,而不是需要解析以具有语义意义的字符串缓冲区。