$function func:length {text:"$(text)"} # return length function func:num_list with storage func:temp # return num_list function func:shuffle {list:"num_list"} # return shuffle.result function func:half {list:"shuffle.result"} # return half.result $function func:length {text:"$(text)"} # return length function func:text_list with storage func:temp # return text_list function func:join {list:"text_list"} # return join.text # tellraw @a {"storage":"func:temp","nbt":"join.text"}