diff --git a/collects/datalog/stx.rkt b/collects/datalog/stx.rkt index 87d9ccefcd..87c480b18c 100644 --- a/collects/datalog/stx.rkt +++ b/collects/datalog/stx.rkt @@ -99,7 +99,13 @@ (syntax-parse stx [sym:id - (list #'sym)] + (cond + [(identifier-binding #'sym 0) + empty] + [(char-upper-case? (string-ref (symbol->string (syntax->datum #'sym)) 0)) + (list #'sym)] + [else + empty])] [sym:expr empty])) (define head-vars (datalog-literal-variables #'head)) diff --git a/collects/tests/datalog/examples/student.rkt b/collects/tests/datalog/examples/student.rkt new file mode 100644 index 0000000000..514153de1b --- /dev/null +++ b/collects/tests/datalog/examples/student.rkt @@ -0,0 +1,4 @@ +#lang datalog +friend(arnold,arnold). +student(arnold,arnold,arnold) :- friend(arnold,arnold). +student(arnold,arnold,arnold)? \ No newline at end of file diff --git a/collects/tests/datalog/examples/student.txt b/collects/tests/datalog/examples/student.txt new file mode 100644 index 0000000000..573c7a300f --- /dev/null +++ b/collects/tests/datalog/examples/student.txt @@ -0,0 +1 @@ +student(arnold, arnold, arnold).