syndicate/profile

This commit is contained in:
Tony Garnock-Jones 2016-09-05 11:22:27 +01:00
parent 0ef2a621d1
commit 02828d8356
1 changed files with 27 additions and 0 deletions

View File

@ -0,0 +1,27 @@
#lang racket/base
(provide profile-dataspace!
profile-lambda)
(require syndicate/lang)
(require profile)
(define profile-lambda
(make-keyword-procedure
(lambda (profile-ks profile-vs procedure)
(make-keyword-procedure
(lambda (invocation-ks invocation-vs . invocation-positionals)
(keyword-apply profile-thunk
profile-ks
profile-vs
(list (lambda ()
(keyword-apply procedure
invocation-ks
invocation-vs
invocation-positionals)))))))))
(define profile-dataspace!
(make-keyword-procedure
(lambda (ks vs . positionals)
(current-ground-dataspace
(keyword-apply profile-lambda ks vs (current-ground-dataspace) positionals)))))