From fe6435f056673faa01cf97fd1a097d16e808ff48 Mon Sep 17 00:00:00 2001 From: Sam Caldwell Date: Wed, 21 Oct 2020 11:05:46 -0400 Subject: [PATCH] add in-hash-keys and in-hash-values --- racket/typed/for-loops.rkt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/racket/typed/for-loops.rkt b/racket/typed/for-loops.rkt index b3d5d29..3d2b537 100644 --- a/racket/typed/for-loops.rkt +++ b/racket/typed/for-loops.rkt @@ -5,7 +5,9 @@ for/list for/set for/sum - for/first) + for/first + in-hash-values + in-hash-keys) (require "core-types.rkt") (require "sequence.rkt") @@ -223,3 +225,14 @@ (⇒ ν-ep (τ-ep ...)) (⇒ ν-s (τ-s ...)) (⇒ ν-f (τ-f ...))]) + + +(define-typed-syntax (in-hash-values h) ≫ + [⊢ h ≫ h- (⇒ : (~Hash K V))] + -------------------- + [⊢ (#%app- in-hash-values- h-) (⇒ : (Sequence V))]) + +(define-typed-syntax (in-hash-keys h) ≫ + [⊢ h ≫ h- (⇒ : (~Hash K V))] + -------------------- + [⊢ (#%app- in-hash-keys- h-) (⇒ : (Sequence K))])