S.I/Lisp/

QUESTION




{A1}=STATEMENT("Spreadsheet Lisp", "is", "fun to learn")
-> "'{1} {2} {3}.'('Spreadsheet Lisp', 'is', 'fun to learn')."

=QUESTION(A:A, "Is", "Spreadsheet Lisp", "fun to learn")
-> TRUE

=QUESTION(A:A, "Is", "Spreadsheet Lisp", "boring")
-> FALSE
        



DEFINE(
    QUESTION,
    LAMBDA(
        knowledgebase,
        fragment1,
        [fragment2],
        [fragment3],
        [fragment4],
        [fragment5],
        [fragment6],
        [fragment7],
        [fragment8],
        [fragment9],
        [fragment10],
        LET(
            arity,
                ARITY(
                    fragment1,
                    fragment2,
                    fragment3,
                    fragment4,
                    fragment5,
                    fragment6,
                    fragment7,
                    fragment8,
                    fragment9,
                    fragment10),
            template,
                CHOOSE(
                    arity,
                    "('{1}').",
                    "('{1}', '{2}').",
                    "('{1}', '{2}', '{3}').",
                    "('{1}', '{2}', '{3}', '{4}').",
                    "('{1}', '{2}', '{3}', '{4}', '{5}').",
                    "('{1}', '{2}', '{3}', '{4}', '{5}', '{6}').",
                    "('{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}').",
                    "('{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}').",
                    "('{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}').",
                    "('{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}')."),
            subject,
                fragment2,
            question_word,
                LOWER(fragment1),
            CONTAINS(
                knowledgebase,
                FORMAT(
                    template,
                    subject,
                    question_word,
                    fragment3,
                    fragment4,
                    fragment5,
                    fragment6,
                    fragment7,
                    fragment8,
                    fragment9,
                    fragment10)))))

        



Help us optimize this function