S.I/Lisp/

FULLDECK




=FULLDECK()
-> {"AS","KS","QS",...,"4C","3C","2C"}

=FULLDECK(YES)
-> {"AS";"KS";"QS";...;"4C";"3C";"2C"}
        



DEFINE(
    FULLDECK,
    LAMBDA(
        [vertical],
        LET(
            full_deck,
                HSTACK(
                    {"AS","KS","QS","JS","XS","9S","8S","7S","6S","5S","4S","3S","2S"},
                    {"AH","KH","QH","JH","XH","9H","8H","7H","6H","5H","4H","3H","2H"},
                    {"AD","KD","QD","JD","XD","9D","8D","7D","6D","5D","4D","3D","2D"},
                    {"AC","KC","QC","JC","XC","9C","8C","7C","6C","5C","4C","3C","2C"}),
            IF(
                DEFAULT(vertical, FALSE),
                TRANSPOSE(full_deck),
                full_deck))))
        



Help us optimize this function