mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Add support for .sls YAML files (SaltStack states)
This commit is contained in:
46
samples/Scheme/lambdastar.sls
Normal file
46
samples/Scheme/lambdastar.sls
Normal file
@@ -0,0 +1,46 @@
|
||||
(library (lambdastar)
|
||||
(export (rename (lambda* lambda)))
|
||||
(import (rnrs))
|
||||
|
||||
(define-syntax lambda*
|
||||
(syntax-rules ()
|
||||
((_ a* e* ...)
|
||||
( lambda*-h a* (let () e* ...)))))
|
||||
|
||||
(define-syntax lambda*-h
|
||||
(syntax-rules ()
|
||||
((_ () e)
|
||||
(lambda a* (if (null? a*) e (apply (e) a*))))
|
||||
((_ (a a* ...) e) (posary-h (a a* ...) e))
|
||||
((_ (a a* ... . rest) e)
|
||||
(polyvariadic-h (a a* ... . rest) e))
|
||||
((_ a* e) (lambda a* e))))
|
||||
|
||||
(define-syntax posary-h
|
||||
(syntax-rules ()
|
||||
((_ (a a* ...) e)
|
||||
(letrec
|
||||
((rec
|
||||
(case-lambda
|
||||
(() rec)
|
||||
((a a* ...) e)
|
||||
((a a* ... . rest)
|
||||
(apply (rec a a* ...) rest))
|
||||
(some (get-more rec some)))))
|
||||
rec))))
|
||||
|
||||
(define-syntax polyvariadic-h
|
||||
(syntax-rules ()
|
||||
((_ (a a* ... . rest) e)
|
||||
(letrec
|
||||
((rec
|
||||
(case-lambda
|
||||
(() rec)
|
||||
((a a* ... . rest) e)
|
||||
(some (get-more rec some)))))
|
||||
rec))))
|
||||
|
||||
(define get-more
|
||||
(lambda (rec some)
|
||||
(lambda more
|
||||
(apply rec (append some more))))))
|
||||
Reference in New Issue
Block a user