<commit_before>(cl:in-package #:sicl-data-and-control-flow)

(defmacro rrotatef (&environment environment &rest places)
  (let* ((setf-expansions
	   ;; Collect the SETF-EXPANSION of each place as a list of the
	   ;; values returned by GET-SETF-EXPANSION. 
	   (loop for place in places
		 collect (multiple-value-list
			  (get-setf-expansion place environment))))
	 (result
	   ;; We start by creating the body of the result, which
	   ;; contains all the STORE-FORMs, storing the
	   ;; STORE-VARIABLEs in the respecctive place.
	   `(progn ,@(loop for setf-expansion in setf-expansions
			   for store-form = (fourth setf-expansion)
			   collect store-form)
		   ;; The HyperSpec says that ROTATEF returns NIL, so
		   ;; we make NIL the last element in the body of the
		   ;; result.
		   nil)))
    (loop for right-hand-side
	    in (reverse (append (rest setf-expansions)
				(list (first setf-expansions))))<commit_msg>Fixed typo in macro name.<commit_after>(cl:in-package #:sicl-data-and-control-flow)

(defmacro rotatef (&environment environment &rest places)
  (let* ((setf-expansions
	   ;; Collect the SETF-EXPANSION of each place as a list of the
	   ;; values returned by GET-SETF-EXPANSION. 
	   (loop for place in places
		 collect (multiple-value-list
			  (get-setf-expansion place environment))))
	 (result
	   ;; We start by creating the body of the result, which
	   ;; contains all the STORE-FORMs, storing the
	   ;; STORE-VARIABLEs in the respecctive place.
	   `(progn ,@(loop for setf-expansion in setf-expansions
			   for store-form = (fourth setf-expansion)
			   collect store-form)
		   ;; The HyperSpec says that ROTATEF returns NIL, so
		   ;; we make NIL the last element in the body of the
		   ;; result.
		   nil)))
    (loop for right-hand-side
	    in (reverse (append (rest setf-expansions)
				(list (first setf-expansions))))
{'fraction_non_alphanumeric': 0.10101549973276323, 'fraction_numerical': 0.0, 'mean_word_length': 3.1415929203539825, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '521782', 'n_tokens_mistral': 678, 'n_tokens_neox': 582, 'n_words': 205}