<commit_before>public class Function implements LispObject {

    private List<Sym> args;
    private LispObject body;
    private Scope scope;

    public Function(List<Sym> args, LispObject body, Scope scope);

    @Override
    public LispObject call(List<LispObject> args, Scope scope)
            throws InterpreterException {
        Scope wrapperScope = buildScopeWithArgsAndEval(args, scope);
        return getBody().eval(wrapperScope);
    }

    protected Scope buildScopeWithArgs(List<LispObject> args, Scope scope, boolean eval)
        throws InterpreterException {
        Scope wrapperScope = new Scope(getScope());
        for (int i = 0; i < getArgNames().size(); ++i) {
            Sym argName = getArgNames().get(i);
            // Obsługa &
            LispObject arg = args.get(i);
            wrapperScope.put(argName, arg.eval(scope));
        }
        return wrapperScope;
    }
}<commit_msg>doc: explain &<commit_after>public class Function implements LispObject {

    private List<Sym> args;
    private LispObject body;
    private Scope scope;

    public Function(List<Sym> args, LispObject body, Scope scope);

    @Override
    public LispObject call(List<LispObject> args, Scope scope)
            throws InterpreterException {
        Scope wrapperScope = buildScopeWithArgsAndEval(args, scope);
        return getBody().eval(wrapperScope);
    }

    protected Scope buildScopeWithArgs(List<LispObject> args, Scope scope, boolean eval)
        throws InterpreterException {
        Scope wrapperScope = new Scope(getScope());
        for (int i = 0; i < getArgNames().size(); ++i) {
            Sym argName = getArgNames().get(i);
            // Obsługa wielu argumentów...
            LispObject arg = args.get(i);
            wrapperScope.put(argName, arg.eval(scope));
        }
        return wrapperScope;
    }
}
{'fraction_non_alphanumeric': 0.09811320754716982, 'fraction_numerical': 0.001078167115902965, 'mean_word_length': 2.7045908183632736, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3672877', 'n_tokens_mistral': 529, 'n_tokens_neox': 515, 'n_words': 140}