convert(file.ext,string)
使用中の Maple の現在のバージョンに応じて、異なる結果が得られます。Maple v14 では "file.ext" が与えられますが、Maple v15 では "file . ext" (ポイントの前後にスペースがあります) が与えられます。誰か私にこれを説明できますか?前もって感謝します。
はい、違いはありますが、より重要なのは、この方法でストリングを形成するアプローチが誤っていることです。
command には特別な (遅延) 評価規則はなく、convert
そのルーチンがここで最初の引数と見なすものは、 namefile
とname の (非交換) 乗算の結果です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"