Fix bug #1848: taytorat leaks internal gensyms from multivar expansions
[maxima.git] / doc / info / ja / DataTypes.texi
blobdec3ecb115f7cb9c20a1baed09e6d1def224a273
1 @menu
2 * Numbers::
3 * Strings::
4 * Constants::
5 * Lists::
6 * Arrays::
7 * Structures::
8 @end menu
10 @c -----------------------------------------------------------------------------
11 @node Numbers, Strings, Data Types and Structures, Data Types and Structures
12 @section Numbers
13 @c -----------------------------------------------------------------------------
15 @menu
16 * Introduction to Numbers::
17 * Functions and Variables for Numbers::
18 @end menu
20 @c -----------------------------------------------------------------------------
21 @node Introduction to Numbers, Functions and Variables for Numbers, Numbers, Numbers
22 @subsection Introduction to Numbers
23 @c -----------------------------------------------------------------------------
25 @c -----------------------------------------------------------------------------
26 @subheading Complex numbers
27 @c -----------------------------------------------------------------------------
29 Maximaでは複素数式を式の実部と@code{%i}かける虚部の足し算で指定します。
30 例えば、等式 @code{x^2 - 4*x + 13 = 0}の根は
31 @code{2 + 3*%i}と @code{2 - 3*%i}です。
32 複素数式の積の整理は積を展開することで影響を受けるかもしれないことに注意してください。
33 複素数式の商や根、他の関数の整理は普通、
34 @code{realpart}, @code{imagpart}, @code{rectform}, @code{polarform},
35 @code{abs}, @code{carg}関数を使って達成することができます。
37 @opencatbox
38 @category{Complex variables}
39 @closecatbox
41 @c -----------------------------------------------------------------------------
42 @node Functions and Variables for Numbers, , Introduction to Numbers, Numbers
43 @subsection Functions and Variables for Numbers
44 @c -----------------------------------------------------------------------------
46 @c -----------------------------------------------------------------------------
47 @anchor{bfloat}
48 @deffn {関数} bfloat (@var{expr})
49 @var{expr}の中のすべての数や数の関数を多倍長浮動小数点に変換します。
50 戻り値の多倍長浮動小数点の有効桁数は、
51 グローバル変数@mref{fpprec}によって規定されます。
53 @mref{float2bf}が@code{false}の場合、
54 浮動小数点が多倍長浮動小数点に変換される時
55 (精度が落ちることを意味するので)警告メッセージが出力されます。
57 @opencatbox
58 @category{Numerical evaluation}
59 @closecatbox
60 @end deffn
62 @c -----------------------------------------------------------------------------
63 @anchor{bfloatp}
64 @deffn {関数} bfloatp (@var{expr})
66 もし@var{expr}が多倍長浮動小数点数なら@code{true}を、そうでなければ@code{false}を返します。
68 @opencatbox
69 @category{Numerical evaluation}
70 @category{Predicate functions}
71 @closecatbox
72 @end deffn
74 @c -----------------------------------------------------------------------------
75 @anchor{bftorat}
76 @defvr {オプション変数} bftorat
77 デフォルト値: @code{false}
79 @code{bftorat}は多倍長浮動小数点の有理数への変換を制御します。
80 @code{bftorat}が@code{false}の時、
81 @mref{ratepsilon}が変換を制御するのに使われます。
82 (これは比較的小さな有理数になります。)
83 @code{bftorat}が@code{true}の時、
84 生成された有理数は多倍長浮動小数点を正確に表します。
86 @opencatbox
87 @category{Numerical evaluation}
88 @closecatbox
90 @end defvr
92 @c -----------------------------------------------------------------------------
93 @anchor{bftrunc}
94 @defvr {オプション変数} bftrunc
95 デフォルト値: @code{true}
97 @code{bftrunc}は、非ゼロの多倍長浮動小数点数の中のずるずる続くゼロを表示しないようにします。
98 例えば、もし@code{bftrunc}が@code{false}なら、
99 @code{bfloat (1)}は@code{1.000000000000000B0}と表示されます。
100 そうでなければ、これは、@code{1.0B0}と表示されます。
102 @opencatbox
103 @category{Numerical evaluation}
104 @closecatbox
105 @end defvr
107 @c -----------------------------------------------------------------------------
108 @anchor{evenp}
109 @deffn {関数} evenp (@var{expr})
111 もし@var{expr}が偶数なら@code{true}を返します。
112 @c THIS IS STRANGE -- SHOULD RETURN NOUN FORM IF INDETERMINATE
113 他の場合には@code{false}を返します。
115 @opencatbox
116 @category{Predicate functions}
117 @closecatbox
118 @end deffn
120 @c -----------------------------------------------------------------------------
121 @anchor{float}
122 @deffn {関数} float (@var{expr})
124 @var{expr}の中の整数、有理数、多倍長浮動小数点を浮動小数点に変換します。
125 @code{float}は@code{evflag}でもあり、
126 非整数有理数と多倍長浮動小数点を浮動小数点に変換します。
128 @opencatbox
129 @category{Numerical evaluation}
130 @category{Evaluation flags}
131 @closecatbox
132 @end deffn
134 @c --- 08.10.2010 DK -----------------------------------------------------------
135 @anchor{float2bf}
136 @defvr {オプション変数} float2bf
137 デフォルト値: @code{true}
139 @code{float2bf}が@code{false}の場合、
140 浮動小数点が多倍長浮動小数点に変換される時、
141 (これは精度の無駄使いとなるかもしれないので、)
142 警告メッセージが表示されます。
143 デフォルト値は@code{true}です。
145 @opencatbox
146 @category{Numerical evaluation}
147 @closecatbox
149 @end defvr
151 @c -----------------------------------------------------------------------------
152 @anchor{floatnump}
153 @deffn {関数} floatnump (@var{expr})
154 もし@var{expr}が浮動小数点なら
155 @code{true}を返し、そうでないなら
156 @code{false}を返します。
158 @opencatbox
159 @category{Numerical evaluation}
160 @category{Predicate functions}
161 @closecatbox
163 @end deffn
165 @c -----------------------------------------------------------------------------
166 @anchor{fpprec}
167 @defvr {オプション変数} fpprec
168 デフォルト値: 16
170 @code{fpprec}は多倍長浮動小数点上の代数のための有効桁数です。
171 @code{fpprec}は通常の浮動小数点上の計算に影響を与えません。
173 @mref{bfloat}と@mref{fpprintprec}も参照してください。
175 @opencatbox
176 @category{Numerical evaluation}
177 @closecatbox
179 @end defvr
181 @c -----------------------------------------------------------------------------
182 @anchor{fpprintprec}
183 @defvr {オプション変数} fpprintprec
184 デフォルト値: 0
186 @code{fpprintprec}は、通常の浮動小数点もしくは多倍長浮動小数点を表示する時の
187 表示する桁数です。
189 通常の浮動小数点に関しては、
190 @code{fpprintprec}が2から16までの値を持つ時、
191 表示されるディジット数は@code{fpprintprec}に等しいです。
192 そうでなければ、@code{fpprintprec}は0もしくは16より大きく、
193 表示されるディジット数は16です。
195 多倍長浮動小数点に関しては、
196 @code{fpprintprec}が2から@code{fpprec}までの値を持つ時、
197 表示される桁数は、@code{fpprintprec}に等しいです。
198 そうでなければ、@code{fpprintprec}は、0もしくは@code{fpprec}より大きく、
199 表示される桁数は@code{fpprec}に等しいです。
201 @code{fpprintprec}は1にはできません。
203 @opencatbox
204 @category{Numerical evaluation}
205 @category{Display flags and variables}
206 @closecatbox
207 @end defvr
209 @c -----------------------------------------------------------------------------
210 @anchor{integerp}
211 @deffn {関数} integerp (@var{expr})
212 もし@var{expr}が整数リテラルなら @code{true}を、
213 そうでないなら @code{false}を返します。
215 もし引数がシンボルならたとえ引数が宣言された整数でも、
216 @code{integerp}は @code{false}を返します。
218 例:
220 @example
221 (%i1) integerp (0);
222 (%o1)                         true
223 (%i2) integerp (1);
224 (%o2)                         true
225 (%i3) integerp (-17);
226 (%o3)                         true
227 (%i4) integerp (0.0);
228 (%o4)                         false
229 (%i5) integerp (1.0);
230 (%o5)                         false
231 (%i6) integerp (%pi);
232 (%o6)                         false
233 (%i7) integerp (n);
234 (%o7)                         false
235 (%i8) declare (n, integer);
236 (%o8)                         done
237 (%i9) integerp (n);
238 (%o9)                         false
239 @end example
241 @opencatbox
242 @category{Predicate functions}
243 @closecatbox
244 @end deffn
246 @c -----------------------------------------------------------------------------
247 @anchor{m1pbranch}
248 @defvr {オプション変数} m1pbranch
249 デフォルト値: @code{false}
251 @code{m1pbranch}は @code{-1}のべき乗の主枝です。
252 @code{(-1)^(1/3)}(すなわち、「奇」の有理指数)や
253 @code{(-1)^(1/4)}(すなわち、「偶」の有理指数)
254 のような量は以下のように扱われます:
255 @c REDRAW THIS AS A TABLE
256 @example
257               domain:real
258                             
259 (-1)^(1/3):      -1         
260 (-1)^(1/4):   (-1)^(1/4)   
262              domain:complex              
263 m1pbranch:false          m1pbranch:true
264 (-1)^(1/3)               1/2+%i*sqrt(3)/2
265 (-1)^(1/4)              sqrt(2)/2+%i*sqrt(2)/2
266 @end example
268 @opencatbox
269 @category{Expressions}
270 @category{Global flags}
271 @closecatbox
272 @end defvr
274 @c -----------------------------------------------------------------------------
275 @deffn {関数} nonnegintegerp (@var{n})
277 @code{@var{n} >= 0}かつ @var{n}が整数の時だけ@code{true}を返します。
280 @opencatbox
281 @category{Package linearalgebra}
282 @category{Predicate functions}
283 @closecatbox
284 @end deffn
286 @c -----------------------------------------------------------------------------
287 @anchor{numberp}
288 @deffn {関数} numberp (@var{expr})
290 もし@var{expr}が文字リテラルか、有理数か、浮動小数点数か、多倍長浮動小数点なら
291 @code{true}を、
292 そうでなければ @code{false}を返します。
294 もし引数がシンボルなら、
295 たとえ引数が@code{%pi}や@code{%i}のようなシンボリックな数でも、また、
296 @code{even}, @code{odd}, @code{integer}, @code{rational}, @code{irrational}, 
297 @code{real}, @code{imaginary}, @code{complex}のいずれかに宣言されていても、
298 @code{numberp}は @code{false}を返します。
300 例:
302 @example
303 (%i1) numberp (42);
304 (%o1)                         true
305 (%i2) numberp (-13/19);
306 (%o2)                         true
307 (%i3) numberp (3.14159);
308 (%o3)                         true
309 (%i4) numberp (-1729b-4);
310 (%o4)                         true
311 (%i5) map (numberp, [%e, %pi, %i, %phi, inf, minf]);
312 (%o5)      [false, false, false, false, false, false]
313 (%i6) declare (a, even, b, odd, c, integer, d, rational,
314      e, irrational, f, real, g, imaginary, h, complex);
315 (%o6)                         done
316 (%i7) map (numberp, [a, b, c, d, e, f, g, h]);
317 (%o7) [false, false, false, false, false, false, false, false]
318 @end example
320 @opencatbox
321 @category{Predicate functions}
322 @closecatbox
323 @end deffn
325 @c NEEDS CLARIFICATION, EXAMPLES
326 @c WHAT ARE THE FUNCTIONS WHICH ARE EVALUATED IN FLOATING POINT ??
327 @c WHAT IS A "NUMERVAL" ?? (SOMETHING DIFFERENT FROM A NUMERIC VALUE ??)
328 @c NEED TO MENTION THIS IS AN evflag
330 @c -----------------------------------------------------------------------------
331 @anchor{numer}
332 @defvr {特殊シンボル} numer
334 @code{numer}は数値の引数を持つ(指数関数を含む)いくつかの数学関数を
335 浮動小数点に評価するようにします。
336 数値が与えられた@code{expr}の中の変数を値に置き換えるようにします。
337 それは @mref{float}スイッチをオンにもします。
339 @mref{%enumer}も参照してください。
341 例:
343 @c ===beg===
344 @c [sqrt(2), sin(1), 1/(1+sqrt(3))];
345 @c [sqrt(2), sin(1), 1/(1+sqrt(3))],numer;
346 @c ===end===
347 @example
348 (%i1) [sqrt(2), sin(1), 1/(1+sqrt(3))];
349                                         1
350 (%o1)            [sqrt(2), sin(1), -----------]
351                                    sqrt(3) + 1
352 (%i2) [sqrt(2), sin(1), 1/(1+sqrt(3))],numer;
353 (%o2) [1.414213562373095, .8414709848078965, .3660254037844387]
354 @end example
356 @opencatbox
357 @category{Numerical evaluation}
358 @category{Evaluation flags}
359 @closecatbox
360 @end defvr
362 @c -----------------------------------------------------------------------------
363 @anchor{numer_pbranch}
364 @defvr {オプション変数} numer_pbranch
365 デフォルト値: @code{false}
367 オプション変数@code{numer_pbranch}は
368 負の整数、有理数、または浮動小数点数のべきの数値評価を制御します。
369 @code{numer_pbranch}が@code{true}でかつ、指数が浮動小数点数であるか
370 オプション変数@mref{numer}も@code{true}の時、
371 Maximaは主枝を使って数値結果を評価します。
372 そうでなければ、式整理されたが未評価の結果が返されます。
374 例:
376 @c ===beg===
377 @c (-2)^0.75;
378 @c (-2)^0.75,numer_pbranch:true;
379 @c (-2)^(3/4);
380 @c (-2)^(3/4),numer;
381 @c (-2)^(3/4),numer,numer_pbranch:true;
382 @c ===end===
383 @example
384 (%i1) (-2)^0.75;
385 (%o1) (-2)^0.75
387 (%i2) (-2)^0.75,numer_pbranch:true;
388 (%o2) 1.189207115002721*%i-1.189207115002721
390 (%i3) (-2)^(3/4);
391 (%o3) (-1)^(3/4)*2^(3/4)
393 (%i4) (-2)^(3/4),numer;
394 (%o4) 1.681792830507429*(-1)^0.75
396 (%i5) (-2)^(3/4),numer,numer_pbranch:true;
397 (%o5) 1.189207115002721*%i-1.189207115002721
398 @end example
400 @opencatbox
401 @category{Numerical evaluation}
402 @closecatbox
403 @end defvr
405 @c NEEDS CLARIFICATION, EXAMPLES
406 @c HOW TO FIND ALL VARIABLES WHICH HAVE NUMERVALS ??
408 @c -----------------------------------------------------------------------------
409 @anchor{numerval}
410 @deffn {関数} numerval (@var{x_1}, @var{expr_1}, @dots{}, @var{x_n}, @var{expr_n})
411 変数@code{x_1}, @dots{}, @code{x_n}を
412 @code{expr_1}, @dots{}, @code{expr_n}に等しい数値を持つ変数だと宣言します。
413 もし @code{numer}フラグが @code{true}なら、
414 変数が現れる任意の式にて、数値は評価され、変数に代入されます。
415 @mref{ev}も参照してください。
417 式@code{expr_1}, @dots{}, @code{expr_n}は、任意の式を取り得ます。数値である必要はありません。
419 @opencatbox
420 @category{Declarations and inferences}
421 @category{Numerical evaluation}
422 @closecatbox
423 @end deffn
425 @c -----------------------------------------------------------------------------
426 @anchor{oddp}
427 @deffn {関数} oddp (@var{expr})
428 もしも@var{exp}が奇数であれば@code{true}を返し、
429 @c THIS IS STRANGE -- SHOULD RETURN NOUN FORM IF INDETERMINATE
430 それ以外では@code{false}を返します。
432 @opencatbox
433 @category{Predicate functions}
434 @closecatbox
435 @end deffn
437 @c -----------------------------------------------------------------------------
438 @anchor{ratepsilon}
439 @defvr {オプション変数} ratepsilon
440 デフォルト値: 2.0e-8
442 @code{ratepsilon}は浮動小数点数を有理数に変換する際に使われる許容誤差です。
444 @c NEED EXAMPLES HERE
445 @opencatbox
446 @category{Numerical evaluation}
447 @category{Rational expressions}
448 @closecatbox
449 @end defvr
451 @c -----------------------------------------------------------------------------
452 @anchor{rationalize}
453 @deffn {関数} rationalize (@var{expr})
455 Maximaの式@var{expr}の中の倍精度浮動小数点やビッグフローすべてを同値の有理数に変換します。
456 もし浮動小数点の2値表現に詳しくなれば、@code{rationalize (0.1)}が1/10に等しくないことに
457 驚くかもしれません。
458 この振る舞いはMaximaに特別なわけではありません。―1/10は2値の循環小数表現を持ちます。
460 @c ===beg===
461 @c rationalize (0.5);
462 @c rationalize (0.1);
463 @c fpprec : 5$
464 @c rationalize (0.1b0);
465 @c fpprec : 20$
466 @c rationalize (0.1b0);
467 @c rationalize (sin (0.1*x + 5.6));
468 @c ===end===
469 @example
470 (%i1) rationalize (0.5);
471                                 1
472 (%o1)                           -
473                                 2
474 (%i2) rationalize (0.1);
475                                1
476 (%o2)                          --
477                                10
478 (%i3) fpprec : 5$
479 (%i4) rationalize (0.1b0);
480                              209715
481 (%o4)                        -------
482                              2097152
483 (%i5) fpprec : 20$
484 (%i6) rationalize (0.1b0);
485                      236118324143482260685
486 (%o6)                ----------------------
487                      2361183241434822606848
488 (%i7) rationalize (sin (0.1*x + 5.6));
489                               x    28
490 (%o7)                     sin(-- + --)
491                               10   5
492 @end example
494 使用例:
496 @c ===beg===
497 @c unitfrac(r) := block([uf : [], q],
498 @c     if not(ratnump(r)) then 
499 @c        error("The input to 'unitfrac' must be a rational number"),
500 @c     while r # 0 do (
501 @c         uf : cons(q : 1/ceiling(1/r), uf),
502 @c         r : r - q),
503 @c     reverse(uf));
504 @c unitfrac (9/10);
505 @c apply ("+", %);
506 @c unitfrac (-9/10);
507 @c apply ("+", %);
508 @c unitfrac (36/37);
509 @c apply ("+", %);
510 @c ===end===
511 @example
512 @group
513 (%i1) unitfrac(r) := block([uf : [], q],
514     if not(ratnump(r)) then
515        error("The input to 'unitfrac' must be a rational number"),
516     while r # 0 do (
517         uf : cons(q : 1/ceiling(1/r), uf),
518         r : r - q),
519     reverse(uf))$
520 @end group
521 (%o1) unitfrac(r) := block([uf : [], q], 
522 if not ratnump(r) then
523    error("The input to 'unitfrac' must be a rational number"),
524                                   1
525 while r # 0 do (uf : cons(q : ----------, uf), r : r - q), 
526                                       1
527                               ceiling(-)
528                                       r
529 reverse(uf))
530 (%i2) unitfrac (9/10);
531                             1  1  1
532 (%o2)                      [-, -, --]
533                             2  3  15
534 (%i3) apply ("+", %);
535                                9
536 (%o3)                          --
537                                10
538 (%i4) unitfrac (-9/10);
539                                   1
540 (%o4)                       [- 1, --]
541                                   10
542 (%i5) apply ("+", %);
543                                 9
544 (%o5)                         - --
545                                 10
546 (%i6) unitfrac (36/37);
547                         1  1  1  1    1
548 (%o6)                  [-, -, -, --, ----]
549                         2  3  8  69  6808
550 (%i7) apply ("+", %);
551                                36
552 (%o7)                          --
553                                37
554 @end example
556 @opencatbox
557 @category{Numerical evaluation}
558 @closecatbox
559 @end deffn
561 @c -----------------------------------------------------------------------------
562 @anchor{ratnump}
563 @deffn {関数} ratnump (@var{expr})
564 もし@var{expr}が整数リテラルもしくは整数リテラルの比なら @code{true}を返し、
565 そうでなければ @code{false}を返します。
567 @opencatbox
568 @category{Predicate functions}
569 @category{Rational expressions}
570 @closecatbox
571 @end deffn
573 @c -----------------------------------------------------------------------------
574 @page
575 @node Strings, Constants, Numbers, Data Types and Structures
576 @section Strings
577 @c -----------------------------------------------------------------------------
579 @menu
580 * Introduction to Strings::
581 * Functions and Variables for Strings::
582 @end menu
584 @c -----------------------------------------------------------------------------
585 @node Introduction to Strings, Functions and Variables for Strings, Strings, Strings
586 @subsection Introduction to Strings
587 @c -----------------------------------------------------------------------------
589 文字列(クォートされた文字の列)は入力の際にはダブルクォートマーク @code{"}で括り、
590 グローバル変数 @mref{stringdisp}に依存して、クォートマークありだったりなしだったりで
591 表示されます。
593 文字列は、埋め込みタブ、改行、キャリッジリターン文字を含む任意の文字を含み得ます。
594 列 @code{\"}は文字通りダブルクォートとして認識され、
595 @code{\\}は文字通りバックスラッシュとして認識されます。
596 バックスラッシュが行の終わりに現れる時、
597 バックスラッシュと(改行かキャリッジリターンと改行かいずれかの)行終端を無視します。
598 そして、文字列は次の行に続きます。
599 他にバックスラッシュともう一つの文字の組み合わせで特殊なものはありません;
600 @code{"}か, @code{\}, 行終端以外の任意の文字の前にバックスラッシュが現れる時、
601 バックスラッシュは無視されます。
602 文字列の中に文字リテラルを埋め込むことを除いて
603 (タブ、改行、キャリッジリターンのような)特殊文字を表す方法はありません。
605 Maximaでは文字タイプはありません;
606 文字単体は1文字の文字列として表されます。
608 @code{stringproc}アドオンパッケージは文字列に機能する多くの関数を含みます。
610 例:
612 @c ===beg===
613 @c s_1 : "This is a string.";
614 @c s_2 : "Embedded \"double quotes\" and backslash \\ characters.";
615 @c s_3 : "Embedded line termination
616 @c in this string.";
617 @c s_4 : "Ignore the \
618 @c line termination \
619 @c characters in \
620 @c this string.";
621 @c stringdisp : false;
622 @c s_1;
623 @c stringdisp : true;
624 @c s_1;
625 @c ===end===
626 @example
627 (%i1) s_1 : "This is a string.";
628 (%o1)               This is a string.
629 (%i2) s_2 : "Embedded \"double quotes\" and backslash \\ characters.";
630 (%o2) Embedded "double quotes" and backslash \ characters.
631 (%i3) s_3 : "Embedded line termination
632 in this string.";
633 (%o3) Embedded line termination
634 in this string.
635 (%i4) s_4 : "Ignore the \
636 line termination \
637 characters in \
638 this string.";
639 (%o4) Ignore the line termination characters in this string.
640 (%i5) stringdisp : false;
641 (%o5)                         false
642 (%i6) s_1;
643 (%o6)                   This is a string.
644 (%i7) stringdisp : true;
645 (%o7)                         true
646 (%i8) s_1;
647 (%o8)                  "This is a string."
648 @end example
650 @opencatbox
651 @category{Syntax}
652 @closecatbox
654 @c -----------------------------------------------------------------------------
655 @node Functions and Variables for Strings, , Introduction to Strings, Strings
656 @subsection Functions and Variables for Strings
657 @c -----------------------------------------------------------------------------
659 @c -----------------------------------------------------------------------------
660 @anchor{concat}
661 @deffn {関数} concat (@var{arg_1}, @var{arg_2}, @dots{})
663 引数を連結します。
664 引数はアトムに評価されなければいけません。
665 もし最初の引数がシンボルなら戻り値はシンボルで、
666 そうでなければ文字列です。
668 @code{concat}は引数を評価します。
669 シングルクォート@code{'}は評価を抑制します。
671 @example
672 (%i1) y: 7$
673 (%i2) z: 88$
674 (%i3) concat (y, z/2);
675 (%o3)                          744
676 (%i4) concat ('y, z/2);
677 (%o4)                          y44
678 @end example
680 @code{concat}によって組み立てられたシンボルは値に割り当てられたり、式の中に現れたりします。
681 @mref{::} (ダブルコロン)割り当て演算子は左辺を評価します。
683 @example
684 (%i5) a: concat ('y, z/2);
685 (%o5)                          y44
686 (%i6) a:: 123;
687 (%o6)                          123
688 (%i7) y44;
689 (%o7)                          123
690 (%i8) b^a;
691 @group
692                                y44
693 (%o8)                         b
694 @end group
695 (%i9) %, numer;
696                                123
697 (%o9)                         b
698 @end example
700 @code{concat (1, 2)}は数のように見えますが、文字列であることに注意してください。
702 @example
703 (%i10) concat (1, 2) + 3;
704 (%o10)                       12 + 3
705 @end example
707 @opencatbox
708 @category{Expressions}
709 @category{Strings}
710 @closecatbox
711 @end deffn
713 @c -----------------------------------------------------------------------------
714 @anchor{sconcat}
715 @deffn {関数} sconcat (@var{arg_1}, @var{arg_2}, ...)
717 引数を文字列に連結します。
718 @mref{concat}と違い、引数はアトムである必要は@i{ありません}。
720 @example
721 (%i1) sconcat ("xx[", 3, "]:", expand ((x+y)^3));
722 (%o1)               xx[3]:y^3+3*x*y^2+3*x^2*y+x^3
723 @end example
725 @opencatbox
726 @category{Expressions}
727 @category{Strings}
728 @closecatbox
729 @end deffn
731 @c NEEDS CLARIFICATION AND EXAMPLES
733 @c -----------------------------------------------------------------------------
734 @anchor{string}
735 @deffn {関数} string (@var{expr})
737 @code{expr}を、ただまるでタイプされたようにMaximaの線形表記に変換します。
739 @code{string}の戻り値は文字列であり、
740 計算の中で使うことはできません。
742 @opencatbox
743 @category{Strings}
744 @closecatbox
745 @end deffn
747 @c SHOULD BE WRITTEN WITH LEADING ? BUT THAT CONFUSES CL-INFO SO WORK AROUND
749 @c -----------------------------------------------------------------------------
750 @anchor{stringdisp}
751 @defvr {オプション変数} stringdisp
752 デフォルト値: @code{false}
754 @code{stringdisp}が@code{true}の時、
755 文字列はダブルクォートマークで囲まれて表示されます。
756 そうでなければクォートマークは表示されません。
758 関数定義を表示する時はいつも、@code{stringdisp}は @code{true}です。
760 例:
762 @c ===beg===
763 @c stringdisp: false$
764 @c "This is an example string.";
765 @c foo () := 
766 @c       print ("This is a string in a function definition.");
767 @c stringdisp: true$
768 @c "This is an example string.";
769 @c ===end===
770 @example
771 (%i1) stringdisp: false$
772 (%i2) "This is an example string.";
773 (%o2)              This is an example string.
774 @group
775 (%i3) foo () :=
776       print ("This is a string in a function definition.");
777 @end group
778 (%o3) foo() := 
779               print("This is a string in a function definition.")
780 (%i4) stringdisp: true$
781 (%i5) "This is an example string.";
782 (%o5)             "This is an example string."
783 @end example
785 @opencatbox
786 @category{Display flags and variables}
787 @closecatbox
788 @end defvr