LoginSignup
0
0

More than 3 years have passed since last update.

CLVM 公式ドキュメントメモ

Posted at

概要

chialisp に関する
https://github.com/Chia-Network/clvm/blob/main/docs/clvm.org
の個人的解釈メモ。
ここではchialispの導入方法などについては扱いません。

list 系操作演算子

c (cons)

(c A B)

引数は二つ。二つの引数をlistにして返す

f (First)

(f X)

引き数は一つ。listを引数にし、listの最初の要素を返す。

r (Rest)

(r X)

引数は一つ。listを引数にして最後の引数を返す

l (ListP)

(l X)

引数はひとつ。引数がlistなのかそれ以外の値なのかをかえす。listであればtrue,値であればfalse

制御構文

i (IF)

(i A B C)

引数は三つ。最初の引数が評価されてtrue(0以外)になった場合にBが評価され、falseの場合はCが評価される。

x (Raise)

(x X Y...)

引数は任意。例外を発生させる。

= (Equal)

(= A B)

比較演算子の== と同等。AとBが同じ値である場合にtrueを返す

> (大なり)

(> A B)

比較演算子の > と同等。 A > B を評価して true/falseを返す

>s :: greater than bytes

(>s A B)

比較演算子の>と同等。>と違うのは引数をバイトとして解釈するという点。

定数

q (Quote)

(q X)

引数を評価せずにそのまま返す。関数を定義できる。

演算子

+ (加算)

(+ a0 a1...)

通常の加算とおなじ。引数の数は任意。引数全ての合計をかえす。

- (減算)

(- a0 a1...)

通常の減算と同じ。引き数の数は任意。最初の引数に対して残りの引数を引いた数を返す

* (積算)

(* a0 a1...)

掛け算。引き数の数は任意。引数全ての積を返す

divmod (剰余)

(divmod A B)

引数は二つ。二番目の引数に対して一番目の引数で割り算を行い、余りを返す。

ストリーミング演算子

ハッシュ関数

sha256

(sha256 A)

引数に対してsha256でハッシュ計算した値を返す

ecdsa 演算子

以下はまだよくわからない(英語は原文)

point_add

(point_add a0 a1 ...)

takes an arbitrary number of bls12_381 points and adds them

pubkey_for_exp

(pubkey_for_exp A)

turns the integer A into a bls12_381 point

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0