((1&{~+/)*./\(=1&{))1 1 1 3 2 4 1
私はいつもインデックスエラーになります。
ポイントは、2 つの数値を出力することです。1 つはリストの最初の数値と同じで、2 番目の数値はその数値が繰り返される回数と同じです。
したがって、これはうまくいきます:
*./\(=1&{)1 1 1 3 2 4 1
1 1 1 0 0 0 0
最初の数字をリストの残りの数字と比較します。次に、and 圧縮の挿入を行います。これにより、1 の連続した文字列がある限り、1 が得られます。これは、and が壊れて失敗し、ゼロが出てくるとです。
次に、別の括弧のセットを追加し、リストからリード要素を再度取得し、何らかの方法でそれらの数値を記録できると考えました。最終的なアイデアは、元のリストにベクトルの逆数を適用する別の段階を持つことです。次に $: を使用して、同じ動詞の再帰的な適用に戻ります。クイックソートの例のようなもので、ある程度理解していると思っていましたが、そうではないと思います。
でも近づかない。人々が回答に対して適切な信用を得られるように、これを別の質問として尋ねます。