2020年5月22日金曜日

開発環境

もっと短い再帰関数を書いてみた。

コード

let kougo = (a, b) => a.length === 0 ? b :
    b.length === 0 ? a :
        [a[0]].concat(kougo(b, a.slice(1))),
    odds = [1, 3, 5],
    evens = [2, 4];

console.log(kougo(odds, evens))
//=> [1, 2, 3, 4, 5]

odds = [1, 3, 5]
evens = [2, 4]
console.log(kougo(odds, evens))
//=> [1, 2, 3, 4, 5]

odds = [1]
evens = []
console.log(kougo(odds, evens))
//=> [1]

odds = [5, 3, 1]
evens = [4, 2]
console.log(kougo(odds, evens))
//=> [ 5, 4, 3, 2, 1 ]

入出力結果(Zsh、PowerShell、Terminal)

% node kougo.js 
[ 1, 2, 3, 4, 5 ]
[ 1, 2, 3, 4, 5 ]
[ 1 ]
[ 5, 4, 3, 2, 1 ]
%

ということで、コードの長さという意味なら最短に近づいたかも。

0 コメント:

コメントを投稿