SFGPLにはBoolに関連したクラス,Bool型と,BoolList型が存在する. これらのクラスは,真偽値や,数値などを表すために使われる.
Bool型は,真偽を表すためのクラスである. Bool型のFalseとTrueは次のように表される.
word | |
---|---|
False | pas |
True | pos |
また,pis
を使用して,Bool型と名詞を次のように接続することで,ある名詞に対する真偽を表すことができる.
次の文は"It is true that I am a student."という例を表す.
このような文では,全体がTrueとして継承される.
pis ma ga so fa 'student' pos
そして,Bool型では,LangObjに備わっている,NOT pa
,OR be
,AND ba
,NOR bo
とNAND bu
を使用することもできる.
そして,それら関数は論理演算をすることができる.
たとえば,True OR False
を表すには次のようになる.
be pos pas
LangObjには通常のIFELSEbi
の他に,logicIFELSEja
が存在する.
この単語により,条件を満たすかどうかで内部的に実行する文章(単語)を変えることができる.
"If true, I am a student."を表すには次のようにする.
ja pos ma ga so fa 'student' pa ma ga so fa 'student'
BoolListでは,真偽値の配列を作成することができる. BoolListには以下のような関数が存在している.
単語 | 説明 |
---|---|
fas | 真偽のリスト(BoolList)を作成する |
fes A B | BoolList(A)のB番目の値を取得する |
fis A B | BoolList(A)に1つのBool(B)を末尾に加える |
fus A B C | AというBoolListに対して,B番目からC番目までのリストを取得する |
fos A B | 2つのBoolList(A,B)を結合する |
foas A | BoolList(A)の長さを取得する |
mas A B | 2つBoolの値(A,B)からなるBoolListを作成する |
mis X1~X4 | 4つBoolの値(x1~x4)からなるBoolListを作成する |
mos X1~X8 | 8つBoolの値(x1~x8)からなるBoolListを作成する |
tas A | BoolList(A)を2進数の自然数とみなす |
tes A | BoolList(A)を2進数の整数とみなす |
tis A | BoolList(A)を2進数の浮動小数とみなす |
tus A | BoolList(A)をASCII文字とみなす |
次のようにすることによって,4byteのデータを使用することができる.
fos fos mos pas pos pas pas pas pas pas pas mos pas pos pas pas pos pas pas pos fos mos pas pas pas pas pos pos pos pos mos pos pos pas pos pos pas pos pos
これは,2進数で0100 0000 0100 1001 0000 1111 1101 1011
を表している.
また,次のようにすることで,数値として使うことができる.
Type | SFGPL | Value |
---|---|---|
自然数 | tas fos fos mos pas pos pas pas pas pas pas pas mos pas pos pas pas pos pas pas pos fos mos pas pas pas pas pos pos pos pos mos pos pos pas pos pos pas pos pos | 1078530011 |
整数 | tes fos fos mos pas pos pas pas pas pas pas pas mos pas pos pas pas pos pas pas pos fos mos pas pas pas pas pos pos pos pos mos pos pos pas pos pos pas pos pos | 1078530011 |
浮動小数点 | tis fos fos mos pas pos pas pas pas pas pas pas mos pas pos pas pas pos pas pas pos fos mos pas pas pas pas pos pos pos pos mos pos pos pas pos pos pas pos pos | 3.1415927410125732 |
浮動小数点は,IEEE 754の半精度,単精度,倍精度,四倍精度に対応している. そのため,それぞれ16bit,32bit,64bit,128bitで表す必要がある.
それぞれの精度で1/3を表すには次のようになる. まず,16進数で表すと次のようになる.
Type | HEX |
---|---|
Half | 3555 |
Single | 3eaa aaab |
Double | 3FD5 5555 5555 5555 |
Quadruple | 3ffd 5555 5555 5555 5555 5555 5555 5555 |
これをSFGPLに変換すると次のようになる.
Type | SFGPL |
---|---|
Half | tis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fas pas pas pos pos pas pos pas pos pas pos pas pos pas pos pas pos |
Single | tis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fas pas pas pos pos pos pos pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pos |
Double | tis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fas pas pas pos pos pos pos pos pos pos pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos |
Quadruple | tis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fis fas pas pas pos pos pos pos pos pos pos pos pos pos pos pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos pas pos |
BoolListを利用して,Unix時間に基づく日時表現をすることができる. 日時表現はその精度によって以下の3種類存在する.
SFGPL | Type | Unit |
---|---|---|
das | yyyy-mm-dd | Day |
des | yyyy-mm-dd HH:MM:SS | Second |
dis | yyyy-mm-dd HH:MM:SS.nnnnnnnnn | Nano Second |
これらの表現は1970-01-01 00:00:00.000000000
が基準で,それぞれ日単位,秒単位,ナノ秒単位での差分によって日時を表す.
また,これらはUTC時間が基準となっている.
例えば,2024-09-19 09:27:27
をdes
で表すには次のようにする.
まず,この時間のUnix時間は1726738047
である.
これを2進数に変換すると,0110 0110 1110 1011 1110 1110 0111 1111
となる.
そのためBoolListに変換すると次のようになる.
fos fos mos pas pos pos pas pas pos pos pas mos pos pos pos pas pos pas pos pos fos mos pos pos pos pas pos pos pos pas mos pas pos pos pos pos pos pos pos
さらに,des
を使用して日時に変換すると次のようになる.
des fos fos mos pas pos pos pas pas pos pos pas mos pos pos pos pas pos pas pos pos fos mos pos pos pos pas pos pos pos pas mos pas pos pos pos pos pos pos pos
これによって,2024-09-19 09:27:27
をSFGPLで表すことができる.
English | SFGPL |
---|---|
I am a student | ma ga so fa 'student' |