History

dotimes: support result form

Sigrid Solveig Haflínudóttir committed 4 months ago

Commit 9c44c721 parent 15a83af2 files · +10 −6Browse files

Showing the changes to src (1 of 2 files). Show all

Unified · Split

src/system.sl+8−4
@@ -2241,10 +2241,14 @@ · 2240 unmodified lines
22412241 (λ ,formals ,@body)))
22422242
22432243 (defmacro (dotimes var . body)
2244− (let ((v (car var))
2245− (cnt (cadr var)))
2246− `(for 0 ,cnt
2247− (λ (,v) ,@body))))
2244+ (let* {[v (car var)]
2245+ [cnt (aref var 1)]
2246+ [nv (length var)]
2247+ [res (if (= nv 3) (aref var 2) #.(void))]}
2248+ (unless (<= nv 3)
2249+ (compile-error "invalid var expression: " var))
2250+ `(begin (for 0 ,cnt (λ (,v) ,@body))
2251+ ,res)))
22482252
22492253 (defmacro (with-bindings binds . body)
22502254 (let ((vars (map car binds))

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t