18 lines
559 B
Plaintext
18 lines
559 B
Plaintext
: -rot rot rot ; [] '__A set : dip swap __A swap 1 compress append '__A
|
|
set execute __A -1 extract nip ; : nip swap drop ; : sum '+ reduce ;
|
|
: 2array 2 compress ; : comb "" split ; : lensize length nip ;
|
|
: <group> #( a -- 'a )
|
|
grade subscript dup 's dress distinct strip
|
|
length 1 2array reshape swap
|
|
'A set
|
|
: `filter(*) A in A swap select ;
|
|
'`filter apply
|
|
;
|
|
|
|
: elements(*) lensize ;
|
|
: entropy #( s -- n )
|
|
length "<group> 'elements apply" dip /
|
|
dup neg swap log * 2 log / sum ;
|
|
|
|
"1223334444" comb entropy . # 1.84643934467102
|