: -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 ; : #( 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 " 'elements apply" dip / dup neg swap log * 2 log / sum ; "1223334444" comb entropy . # 1.84643934467102