「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 '1%2'
+
$ 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 '1.as_float'
+
$ pione-val '123.str()'
1.0
+
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/8.0'
+
$ pione-val '1.0==1.00'
0.125
+
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>
  
整数型の演算を浮動小数点型で出力したいときには予め.as_floatで型変換を行います。<br>
+
整数型の演算を浮動小数点型で出力したいときには予め.f()または.as_float()で型変換を行います。<br>
 
<pre>
 
<pre>
$ pione-val '1/8.0'
+
$ 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.as_float/8.0'
+
$ pione-val '1.01/10.f()'
0.125
+
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