On 5/29/20, Beatriz Moreira <beatriz.smore...@gmail.com> wrote:
>
>
> Hi, im a beginner with racket and im using it to implement a language in
> order to test its operational semantic rules.
>
> This is the function where i keep having the error:
>
> (define-metafunction FS
>
> call : env-ß classes address f ((x v)...) -> e
>
> [(call (env-ß_1 ... ((address_1 C_1 n_1 vars_1 ...) ... (address C n vars
> ...) (address_2 C_2 n_2 vars_2 ...) ...) env-ß_2 ...)
>
> ((contract C_1 {x_11 ...} F_1) ... (contract C {x_1 ...} f (x ...) {return
> e}) (contract C_2 {x_22 ...} F_2) ...) address f ((x v)...))
>
> e])
>
>
> And this is the error message :
>
> ../../../../../../../Applications/Racket
> v7.6/share/pkgs/redex-lib/redex/private/reduction-semantics.rkt:1588:55:
> call: (call (((2 C 4 (x 3) (r 9)) (9 A 24 (a 9) (b 5)))) ((contract C (x r)
>
> (a (d y) (return (y + d)))) (contract A (a b) (c (a b) (return (3))))) 2 a
> (d 7) (y 3)) is not in my domain
>
> I have tried changing the parenthesis but i can't seem to get it right.
> Here's the code
> <https://bitbucket.org/beatrizmoreira/contracts/src/master/newfs.rkt> .Thank
>
> you guys for your help! :)

The "not in my domain error" happens when a metafunction gets either
the wrong number of arguments or the wrong shape for a certain arg.

Once you have the right number of arguments, `redex-match?` can help
check shapes.

```
(require rackunit)
(check-true (redex-match? FS env-ß (term (((2 C 4 (x 3) (r 9)) (9 A 24
(a 9) (b 5)))))))
```

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CAFUu9R4yO5dRXxbPB5JcfotbNCQONPS2SskTq3YAhtX7erXQ0A%40mail.gmail.com.

Reply via email to