文字列
Maximaでは数式だけではなく、文字列も扱うことができます。
表示に用いられる関数
関数 | 機能 |
newline | 改行. |
式を評価して表示. | |
sprint | 並んだデータを1行に表示. |
display | 「未評価の状態=評価された状態」で表示. |
printf | 書式付きで表示. |
文字列、数値、数式などが表示できます。
例.
print(123)$
実行結果. 123
例.
print("hello")$
実行結果. hello
例.
print("(a+b)^2 =",expand((a+b)^2))$
実行結果. $(a+b)^2 = a^2 + 2ab +b^2$
Note. この例のように引数を複数指定することができます。
sprint
for文と一緒に用いたときに1行で表示を行います。
例.
for i thru 3 do sprint(i);
実行結果. 1 2 3
上の例でprintを代わりに用いると改行されて表示されます。
display
「評価前=評価後」という形で表示してくれます。
例.
display(sin(1.0))$
実行結果. sin(1.0)=0.8414709848078965
例.
for i thru 3 do display(sin(i+0.0))$
実行結果 sin(1.0)=0.8414709848078965 sin(2.0)=0.9092974268256817 sin(3.0)=0.1411200080598672
printf
書式を整えて表示するときに用います。
~d | 整数 |
~f | 小数 |
~h | bigfloat |
~a | 文字列 |
~b | 2進数 |
~o | 8進数 |
~x | 16進数 |
~% | 改行 |
printf(false,文字列,...)の場合は、ただ文字列を返します。
printf(true,文字列,...)の場合は、文字列を表示して、false を返します。
例.
printf(false,"hello~d",123);
実行結果. hello123
かわりに
printf(false,"hello~d",123)$
として戻り値を隠すと何も表示されなくなります。
例.
printf(true,"hello~d",123)$
実行結果 hello123
このようにtrueの場合は、$によって戻り値を隠しても文字列が表示されます。
例.
printf(false,"~x ~o ~b",10,10,10);
実行結果 A 12 1010
文字列操作
文字列の結合・切り取りなど
関数 | 機能 |
charat (s, n) | 文字列sのn文字目. |
charlist (s) | 文字列sを1文字に分解したリスト. |
sequal (s1, s2) | 文字列s1とs2が等しいかどうか判定. |
slength (string) | 文字列の長さ. |
smake (n, c) | n個のcを生成. |
substring (string, start) | 部分文字列の切り取り. |
substring (string, start, end) | 部分文字列の切り取り. |
sconcat(s1,s2) | 文字列の足し算. |
sremove(s1,s2) | s2からs1を取り除く. |
例(文字列+文字列)
sconcat("hello","World");
実行結果 helloWorld
例(文字列+数値)
sconcat("hello",123);
実行結果 hello123