この解答例はChatGPTによって生成されています,正しいかは自己判断で。

BFE.devでのAI解答例 - JavaScript コーディング問題
139. _.partial()を実装する

const partial = (func, ...presetArgs) => {
  return function (...args) {
    const newArgs = []
    for (const arg of presetArgs) {
      newArgs.push(arg === partial.placeholder ? args.shift() : arg)
    }
    return func.apply(this, newArgs.concat(args))
  }
}

partial.placeholder = '_'

まず、partial()関数自体は、与えられた関数と部分的な引数の配列を取り、新しい部分適用関数を返します。この新しい関数は、残りの引数を受け取り、与えられた関数に渡すために部分適用された引数と共に結合されます。

新しい関数が呼び出されたとき、残りの引数を受け取り、presetArgsと引数を交互にスキャンして、partial.placeholder値があれば残りの引数から取り出して置き換えます。新しい引数配列が構築された後、部分適用された引数に残りの引数を結合して、与えられた関数を呼び出します。

最後に、partial.placeholderプロパティを追加して、部分適用のための占位子を指定できるようにしました。