convert(file.ext,string)
根据Maple当前使用的版本给出不同的结果。在Maple v14中给出了“file.ext”,但是在Maple v15中给出了“file.ext”(在点之前和之后有空格)。谁能解释一下这个?提前谢谢。
答案 0 :(得分:1)
是的,存在差异,但更重要的是以这种方式形成字符串的方法是错误的。
命令convert
没有特殊的(延迟的)评估规则,这个例程在这里看到的第一个参数是名称file
与(非交换)乘法的结果名称ext
。所以这并不是连接字符串的好方法,因为它的目的不是首先仔细连接。
还有其他选择。您可以连接到单个名称,然后将其转换为字符串,或者您可以直接连接到字符串(对于该字符串,convert / string命令不是最佳的)。
# I'm supposing that one does want the name`file` assigned
file:=myproject:
# Now suppose that one wants the result "myproject.for"
ext:=`for`:
convert(file.ext,string); # whoops
"myproject . `for`"
cat(file,".",ext); # produces the name `myproject.for`
myproject.for
convert(%,string);
"myproject.for"
sprintf("%a.%s",file,ext);
"myproject.for"