From e01e22fd4d31717292d3ff169b6489f1d8967d86 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 23 Jan 2017 16:23:35 -0600 Subject: [PATCH] Use simple comma-join when listing items in a room. --- mudsync/room.scm | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) 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 -- 2.31.1