From: Christopher Allan Webber Date: Mon, 23 Jan 2017 22:23:35 +0000 (-0600) Subject: Use simple comma-join when listing items in a room. X-Git-Tag: fosdem-2017~90 X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=e01e22fd4d31717292d3ff169b6489f1d8967d86;p=mudsync.git Use simple comma-join when listing items in a room. --- diff --git a/mudsync/room.scm b/mudsync/room.scm index 8dc1d84..877e2fa 100644 --- a/mudsync/room.scm +++ b/mudsync/room.scm @@ -134,23 +134,6 @@ ;;; look commands -(define (list-words-as-string words) - "A little utility for listing a bunch of words in an English-style list" - ;; TODO: This could be made faster by traversing the O(n) - ;; list once, not twice - (let ((word-length (length words))) - (cond - ((eqv? word-length 0) "") - ((eqv? word-length 1) (car words)) - (else - ;; TODO: and this is NOT efficient - (string-append - (string-join - (drop-right words 1) - ", ") - " and " - (last words)))))) - (define (room-player-looks-around room player-id) "Handle looking around the room" ;; Get the room text @@ -180,7 +163,8 @@ (if (eq? occupant-names-filtered '()) #f (format #f "You see here: ~a.\n" - (list-words-as-string occupant-names-filtered)))) + (string-join occupant-names-filtered + ", ")))) (define final-text (if occupant-names-string