• Re: Lisp problem to solve

    From B. Pym@21:1/5 to John Thingstad on Thu Aug 29 06:23:13 2024
    John Thingstad wrote:

    Pn++ Tue, 20 Nov 2007 23:59:24 +0100, skrev Mark Tarver


    On 20 Nov, 14:48, ryan.dufra...@gmail.com wrote:
    You are given a list of transactions along with the
    profits from the transactions. Write code that will return the
    transaction with the maximum profit. If many transactions have the
    same and maximusm profit, the code can return any of these. For
    example,
    given ((T1 20) (T2 88) (T3 188) (T4 99) (T5 66)), the code should.
    return T3.

    I am looking for code or pseudocode.

    (SETQ *LIST* '((T1 20) (T2 88) (T3 188) (T4 99) (T5 66)))

    Shortest solution is 1 line.

    (FIRST (FIRST (SORT *LIST* (FUNCTION (LAMBDA (X Y) (> (SECOND X)
    (SECOND Y)))))))

    Mark


    or (caar (sort *list* #'> :key #'second))

    Gauche Scheme:

    (define List '((T1 20) (T2 88) (T3 188) (T4 99) (T5 66)))

    (caar (sort List > last))

    ===>
    T3

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)