「PIONEの式」の版間の差分
提供: Eospedia
(→文字列型(string)) |
|||
行14: | 行14: | ||
$ pione-val 'true.not()' | $ pione-val 'true.not()' | ||
false | 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 | ||
+ | </pre> | ||
+ | <br> | ||
+ | |||
+ | .as_string(), .as_integer(), .as_float()はそれぞれの型に変換するメソッドですが、以下のような簡易表記があります。以降は簡易表記で記述します。<br> | ||
+ | <pre> | ||
+ | $ pione-val 'true.str()' | ||
+ | true | ||
+ | $ pione-val 'true.i()' | ||
+ | 1 | ||
+ | $ pione-val 'true.f()' | ||
+ | 1.0 | ||
</pre> | </pre> | ||
<br> | <br> | ||
行33: | 行52: | ||
$ pione-val '"abcdefg".substring(2,3)' | $ pione-val '"abcdefg".substring(2,3)' | ||
bcd | bcd | ||
+ | $ pione-val '"abc".str()' | ||
+ | abc | ||
+ | $ pione-val '"12.3".i()' | ||
+ | 12 | ||
+ | $ pione-val '"12.3".f()' | ||
+ | 12.3 | ||
</pre> | </pre> | ||
<br> | <br> | ||
行56: | 行81: | ||
$ pione-val '1*2' | $ pione-val '1*2' | ||
2 | 2 | ||
− | $ pione-val ' | + | $ pione-val '11%2' |
1 | 1 | ||
$ pione-val '1/2' | $ pione-val '1/2' | ||
0 | 0 | ||
− | $ pione-val '1.next' | + | $ pione-val '1.next()' |
2 | 2 | ||
− | $ pione-val '1.prev' | + | $ pione-val '1.prev()' |
0 | 0 | ||
− | $ pione-val '1.even?' | + | $ pione-val '1.even?()' |
false | false | ||
− | $ pione-val '1.odd?' | + | $ pione-val '1.odd?()' |
true | true | ||
− | $ pione-val ' | + | $ pione-val '123.str()' |
− | + | 123 | |
+ | $ pione-val '123.i()' | ||
+ | 123 | ||
+ | $ pione-val '123.f()' | ||
+ | 123.0 | ||
</pre> | </pre> | ||
<br> | <br> | ||
== 浮動小数点型(float) == | == 浮動小数点型(float) == | ||
− | 基本的には整数型と同じ。(但し、next, prev, even?, odd?は無い)<br> | + | 基本的には整数型と同じ。(但し、next(), prev(), even?(), odd?()は無い)<br> |
<pre> | <pre> | ||
− | $ pione-val '1.0 | + | $ pione-val '1.0==1.00' |
− | 0. | + | 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 | ||
</pre> | </pre> | ||
<br> | <br> | ||
− | 整数型の演算を浮動小数点型で出力したいときには予め. | + | 整数型の演算を浮動小数点型で出力したいときには予め.f()または.as_float()で型変換を行います。<br> |
<pre> | <pre> | ||
− | $ pione-val '1 | + | $ 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) | 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. | + | $ pione-val '1.01/10.f()' |
− | 0. | + | 0.101 |
</pre> | </pre> | ||
<br> | <br> | ||
== ルール表現型 == | == ルール表現型 == | ||
+ | pione-valには対応していないので、式の定義のみ示します。<br> | ||
+ | <pre> | ||
+ | |||
+ | </pre> | ||
<br> | <br> | ||
== データ表現型 == | == データ表現型 == | ||
+ | pione-valには対応していないので、式の定義のみ示します。<br> | ||
+ | <pre> | ||
+ | |||
+ | </pre> | ||
+ | <br> | ||
+ | |||
+ | == シーケンス == | ||
+ | <pre> | ||
+ | $ pione-val '("a"|"b"|"c").length()' | ||
+ | 3 | ||
+ | </pre> | ||
<br> | <br> |
2014年12月9日 (火) 02:35時点における版
PIONEで使用する式のメソッド一覧を型ごとに示します。pione-valによる実行例を記載しています。
真偽型(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 '("a"|"b"|"c").length()' 3