Pushy、20  17 16または13バイト
許可される内容に応じて、2つの解決策があります。
16バイト:
@$LT1U&Wm:v;O"cI
コマンドラインで引数を指定します$ pushy hiccup.pshy 'hiccupinator'。これは、各「しゃっくり」の後に末尾の改行を付けて印刷します。内訳は次のとおりです。
                      % Implicit: input on stack as charcodes
@                     % Reverse input, so chars are pulled from start
 $             I      % While there are items on stack:
   T1U                %   Push a random number, 1-10
      &W              %   Wait that many seconds
  L     m:            %   min(time waited, chars left) times do:
          v;          %     Pull a char from the input.
            O"c       %   Print & delete pulled chars
13バイト:
上記の答えをコーディングしている間、私はこの非常に短いソリューションを思いつきました:
N@$L1TU&Wm:'.
同様のことを行いますが、より少ないバイト数で新しい文字列を作成するのではなく、文字列から直接印刷します。これには、Nプログラムの開始時に改行の末尾を防ぐ必要があります。そうしないと、各文字が改行になります。
しかし、これをテストしているときにバグに気付きました- stdoutラインバッファリングされているので、プログラムは完全な長さを待ってから、しゃっくりした文字列を表示します。
最新のコミットでこれを修正するために、単純なものを追加しました.flush()-これは技術的には言語に新しい機能を追加するのではなく、バグを修正するだけですが、この答えを考慮に入れない場合は理解できます:)
内訳は次のようになります。
        % Implicit: input on stack as charcodes
N       % Set trailing newlines to False
@       % Reverse stack (so the charcodes are pulled off in order)
$       % While there are items left to print:
L       %    Push stack length
1TU     %    Push a random number 1-10
&W      %    Wait that amount of time
m:      %    min(time waited, chars left) times do:
'.      %      Pop and print last char