2012-04-01 7 views
0
convert(file.ext,string) 

Mapleの現在のバージョンの使用状況によって異なる結果が表示されます。 Maple v14では "file.ext"が与えられますが、Maple v15では "file。ext"(ポイントの前後にスペースがあります)が与えられます。誰も私にこれを説明できますか?前もって感謝します。Mapleの文字列に変換する15

答えて

1

はい、違いはありますが、この方法で文字列を形成する手法が誤っていることが重要です。

は、コマンドconvert、そして何そのルーチンが、ここで最初の引数として見ている名前extと名前fileの(noncommutating)乗算の結果であるため、特別な(遅延)評価規則はありません。それで、文字列に連結するのは本当に素晴らしい方法ではありません。最初は慎重に連結することではないからです。

代替手段があります。単一の名前に連結し、それを文字列に変換するか、文字列に直接連結することができます(コマンド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"