「PIONEの式」の版間の差分
提供: Eospedia
(→シーケンス) |
|||
行1: | 行1: | ||
− | [[PIONE]]で使用する式のメソッド一覧を型ごとに示します。pione valによる実行例を記載しています。[[PIONE定義書]]の条件などで使用するときは' ' | + | [[PIONE]]で使用する式のメソッド一覧を型ごとに示します。pione valによる実行例を記載しています。[[PIONE定義書]]の条件などで使用するときは' '内のみを使用します。引数が無いものは()を省略可能です。<br> |
<br> | <br> | ||
2015年1月15日 (木) 08:25時点における版
PIONEで使用する式のメソッド一覧を型ごとに示します。pione valによる実行例を記載しています。PIONE定義書の条件などで使用するときは' '内のみを使用します。引数が無いものは()を省略可能です。
目次
真偽型(boolean)
$ pione val 'true==true' true $ pione val 'true!=true' false $ pione val 'true and false' false $ pione val 'true or false' true $ pione val 'true.not()' false $ pione val 'true.as_string()' true $ pione val 'true.as_integer()' 1 $ pione val 'true.as_float()' 1.0 $ pione val 'true.as_boolean()' true
.as_string(), .as_integer(), .as_float()はそれぞれの型に変換するメソッドですが、以下のような簡易表記があります。以降は簡易表記で記述します。
$ pione val 'true.str()' true $ pione val 'true.i()' 1 $ pione val 'true.f()' 1.0
文字列型(string)
$ pione val '"abc"=="def"' false $ pione val '"abc"!="def"' true $ pione val '"abc"+"def"' abcdef $ pione val '"abc".count()' 3 $ pione val '"abc".include?("ab")' true $ pione val '"abc".include?("ac")' false $ pione val '"abcdefg".substring(2,3)' bcd $ pione val '"abc".str()' abc $ pione val '"12.3".i()' 12 $ pione val '"12.3".f()' 12.3
整数型(integer)
$ pione val '1==2' false $ pione val '1!=2' true $ pione val '1>2' false $ pione val '1>=2' false $ pione val '1<2' true $ pione val '1<=2' true $ pione val '1+2' 3 $ pione val '1-2' -1 $ pione val '1*2' 2 $ pione val '11%2' 1 $ pione val '1/2' 0 $ pione val '1.next()' 2 $ pione val '1.prev()' 0 $ pione val '1.even?()' false $ pione val '1.odd?()' true $ pione val '123.str()' 123 $ pione val '123.i()' 123 $ pione val '123.f()' 123.0
浮動小数点型(float)
基本的には整数型と同じです。(但し、next(), prev(), even?(), odd?()は無い)
$ pione val '1.0==1.00' true $ pione val '10.0!=1.00' true $ pione val '1.0>1.00' false $ pione val '1.0>=1.00' true $ pione val '1.00<10.0' true $ pione val '1.00<=10.0' true $ pione val '1.01+10.0' 11.01 $ pione val '1.01-10.0' -8.99 $ pione val '1.01*10.0' 10.1 $ pione val '1.01/10.0' 0.101 $ pione val '101.0%10.0' 1.0 $ pione val '12.3.str()' 12.3 $ pione val '12.3.i()' 12 $ pione val '12.3.f()' 12.3
整数型の演算を浮動小数点型で出力したいときには予め.f()または.as_float()で型変換を行います。
$ pione val '1.01/10' fatal: PIONE method "/" is not found: #<Type integer>. #<Type float> [/pione/lib/pione/command/basic-command.rb:48:in `abort'] (2014-12-08T11:51:11.481+09:00, #8995) $ pione val '1.01/10.f()' 0.101
ルール表現型
pione valには対応していないので、式の定義のみ示します。
データ表現型
pione valには対応していないので、式の定義のみ示します。
シーケンス
$ pione val '((3|5)|7)' 3 5 7 $ pione val '(3|5|7)==((3|5)|7)' true $ pione val '(3|5|7)!=((3|5)|7)' false $ pione val '(3|5|7).each()' 3 5 7 $ pione val '(3|5|7).all()' 3 5 7 $ pione val '(3|5|7).each?()' true $ pione val '(3|5|7).all?()' false $ pione val '(3|5|7).all().all?()' true $ pione val '(3|5|7).type()' integer $ pione val '(3.0|5.0|7.0).i()' 3 5 7 $ pione val '(3|5|7).f()' 3.0 5.0 7.0 $ pione val '(3|5|7).str()' 3 5 7 $ pione val '(3|5|7).str().type()' string $ pione val '(3|5|7).length()' 3 $ pione val '(3|5|7).empty?()' false $ pione val '(3|5|7).textize()' 3 5 7 $ pione val '(3|5|7).nth(2)' 5 $ pione val '(3|5|7)[2]' 5 $ pione val '(3|5|7).member?(3)' true $ pione val '(3|5|7).reverse()' 7 5 3 $ pione val '(3|5|7).head()' 3 $ pione val '(3|5|7).tail()' 5 7 $ pione val '(3|5|7).init()' 3 5
メソッドにおける注意事項
四則演算における注意事項
現バージョンでのPIONEにおける四則演算は二項演算のみに対応しています。三項以上の場合は必ず括弧を使用して二項になるようにします。
$ pione val '((5+3)*(4/2))-1' 15 $ pione val '1.0+((2.0-3.0)*(4.0/5.0))' 0.19999999999999996
PIONE定義書に記述するとき
if ($i * $j) + $k < $max