文字列

Maximaでは数式だけではなく、文字列も扱うことができます。

表示に用いられる関数

関数 機能
newline 改行.
print 式を評価して表示.
sprint 並んだデータを1行に表示.
display 「未評価の状態=評価された状態」で表示.
printf 書式付きで表示.

print

文字列、数値、数式などが表示できます。

例.

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