;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Tvetydig grammatikk for uttrykk av typen ;; ;; d d d 1 s s s s s s ;; ;; alts? d* 1 s* ;; ;; N?r d leses som 2x (dobling) og s leses som +1 (suksessorfunksjon) ;; ;; genereres partall (P) og oddetall (O) slik: (defparameter *start-symbol* 'o) ;; Litt tilfeldig velger vi oddetall (defparameter *nonterminals* '(o p pref suff)) (defparameter *rules* (list ;; Grammar rules (make-rule :mother 'p :child1 'pref :child2 'p :prob 0.4) ;; dobbelt partall er partall (make-rule :mother 'p :child1 'pref :child2 'o :prob 0.4) ;; dobbelt oddetall er partall (make-rule :mother 'p :child1 'o :child2 'suff :prob 0.2 ) ;; etterf?lger til oddetall er partall (make-rule :mother 'o :child1 'p :child2 'suff :prob 0.7 ))) ;; etterf?lger til partall er oddetall (defparameter *lexicon* (list ;; Lexicon (make-lexeme :pos 'o :form 1 :prob 0.3) ;; 1 er et oddetall (make-lexeme :pos 'pref :form 'd :prob 1) (make-lexeme :pos 'suff :form 's :prob 1)))