Skip to content

Instantly share code, notes, and snippets.

@damien-mattei
Created December 4, 2024 14:10
Show Gist options
  • Save damien-mattei/2b14369a997a3ae1c0c6e0b0e6eea9c0 to your computer and use it in GitHub Desktop.
Save damien-mattei/2b14369a997a3ae1c0c6e0b0e6eea9c0 to your computer and use it in GitHub Desktop.
expanding code
`
(pretty-print (syntax->datum (expand '($nfx$
data-xml
<-
(for/list
((one-data-row data-interpol) (one-trajectory-row data-trajectory))
($nfx$
(index X_MSO Y_MSO Z_MSO VALx VALy VALz)
<-
(apply values (string-split one-data-row)))
($nfx$
(time-stamp x_traj_mso y_traj_mso z_traj_mso)
<-
(apply values (string-split one-trajectory-row)))
(define (cal val) ($nfx$ val * Bsw / B0))
`(TR
(TD ,time-stamp)
(TD ,X_MSO)
(TD ,Y_MSO)
(TD ,Z_MSO)
(TD ,(number->string (cal (string->number VALx))))
(TD ,(number->string (cal (string->number VALy))))
(TD ,(number->string (cal (string->number VALz))))))))))
'(define-values
(data-xml)
(#%app
alt-reverse
(let-values (((fold-var) (let-values (((fold-var) null)) fold-var)))
(let-values (((pos->vals
pos-pre-inc
pos-next
init
pos-cont?
val-cont?
all-cont?)
(#%app
make-sequence
'(one-data-row)
(#%top . data-interpol)))
((pos->vals
pos-pre-inc
pos-next
init
pos-cont?
val-cont?
all-cont?)
(#%app
make-sequence
'(one-trajectory-row)
(#%top . data-trajectory))))
(#%app void)
(#%app void)
(#%app
(letrec-values (((for-loop)
(lambda (fold-var pos pos)
(let-values ()
(if (if (if pos-cont? (#%app pos-cont? pos) '#t)
(if pos-cont? (#%app pos-cont? pos) '#t)
'#f)
(let-values (((one-data-row all-cont?/pos)
(let-values (((one-data-row)
(#%app
pos->vals
pos)))
(#%app
values
one-data-row
(if all-cont?
(lambda (pos)
(#%app
all-cont?
pos
one-data-row))
'#f))))
((pos)
(if pos-pre-inc
(#%app pos-pre-inc pos)
pos))
((one-trajectory-row all-cont?/pos)
(let-values (((one-trajectory-row)
(#%app
pos->vals
pos)))
(#%app
values
one-trajectory-row
(if all-cont?
(lambda (pos)
(#%app
all-cont?
pos
one-trajectory-row))
'#f))))
((pos)
(if pos-pre-inc
(#%app pos-pre-inc pos)
pos)))
(#%app void)
(#%app void)
(if (if (if val-cont?
(#%app val-cont? one-data-row)
'#t)
(if val-cont?
(#%app val-cont? one-trajectory-row)
'#t)
'#f)
(let-values (((fold-var)
(let-values (((fold-var)
(let-values ()
(#%app
cons
(let-values ()
(let-values (((index)
'()))
(let-values (((X_MSO)
'()))
(let-values (((Y_MSO)
'()))
(let-values (((Z_MSO)
'()))
(let-values (((VALx)
'()))
(let-values (((VALy)
'()))
(let-values (((VALz)
'()))
(let-values ((()
(begin
(#%app
call-with-values
(lambda ()
(#%app
apply
values
(let-values (((one-data-row6)
one-data-row))
(if (#%app
variable-reference-constant?
(#%variable-reference
string-split25))
(#%app
string-split
'#f
'#t
one-data-row6
unsafe-undefined)
(#%app
string-split25
one-data-row6)))))
(lambda (value
.
rest)
(set! index
value)
(#%app
call-with-values
(lambda ()
(#%app
apply
values
rest))
(lambda (value
.
rest)
(set! X_MSO
value)
(#%app
call-with-values
(lambda ()
(#%app
apply
values
rest))
(lambda (value
.
rest)
(set! Y_MSO
value)
(#%app
call-with-values
(lambda ()
(#%app
apply
values
rest))
(lambda (value
.
rest)
(set! Z_MSO
value)
(#%app
call-with-values
(lambda ()
(#%app
apply
values
rest))
(lambda (value
.
rest)
(set! VALx
value)
(#%app
call-with-values
(lambda ()
(#%app
apply
values
rest))
(lambda (value
.
rest)
(set! VALy
value)
(#%app
call-with-values
(lambda ()
(#%app
apply
values
rest))
(lambda (value
.
rest)
(set! VALz
value)
(#%app
call-with-values
(lambda ()
(#%app
apply
values
rest))
(lambda ()
(#%app
values)))))))))))))))))
(#%app
values))))
(let-values (((time-stamp)
'()))
(let-values (((x_traj_mso)
'()))
(let-values (((y_traj_mso)
'()))
(let-values (((z_traj_mso)
'()))
(let-values ((()
(begin
(#%app
call-with-values
(lambda ()
(#%app
apply
values
(let-values (((one-trajectory-row7)
one-trajectory-row))
(if (#%app
variable-reference-constant?
(#%variable-reference
string-split25))
(#%app
string-split
'#f
'#t
one-trajectory-row7
unsafe-undefined)
(#%app
string-split25
one-trajectory-row7)))))
(lambda (value
.
rest)
(set! time-stamp
value)
(#%app
call-with-values
(lambda ()
(#%app
apply
values
rest))
(lambda (value
.
rest)
(set! x_traj_mso
value)
(#%app
call-with-values
(lambda ()
(#%app
apply
values
rest))
(lambda (value
.
rest)
(set! y_traj_mso
value)
(#%app
call-with-values
(lambda ()
(#%app
apply
values
rest))
(lambda (value
.
rest)
(set! z_traj_mso
value)
(#%app
call-with-values
(lambda ()
(#%app
apply
values
rest))
(lambda ()
(#%app
values)))))))))))
(#%app
values))))
(let-values (((cal)
(lambda (val)
(#%app
/
(#%app
*
val
(#%top
.
Bsw))
(#%top
.
B0)))))
(#%app
list
'TR
(#%app
list
'TD
time-stamp)
(#%app
list
'TD
X_MSO)
(#%app
list
'TD
Y_MSO)
(#%app
list
'TD
Z_MSO)
(#%app
list
'TD
(#%app
number->string
(#%app
cal
(#%app
string->number
VALx))))
(#%app
list
'TD
(#%app
number->string
(#%app
cal
(#%app
string->number
VALy))))
(#%app
list
'TD
(#%app
number->string
(#%app
cal
(#%app
string->number
VALz))))))))))))))))))))
fold-var))))
(#%app values fold-var))))
(if (if (if all-cont?/pos
(#%app all-cont?/pos pos)
'#t)
(if (if all-cont?/pos
(#%app all-cont?/pos pos)
'#t)
(#%app not '#f)
'#f)
'#f)
(#%app
for-loop
fold-var
(#%app pos-next pos)
(#%app pos-next pos))
fold-var))
fold-var))
fold-var)))))
for-loop)
fold-var
init
init)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment