Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    26

    [CLIPS] template e valori

    Ho un dubbio sulla definizione di un template e sui valori di default.

    codice:
    CLIPS> (clear)
    CLIPS> 
    (deftemplate foo
       (slot w (default ?NONE)) 
       (slot x (default ?DERIVE))
       (slot y (default (gensym*)))
       (slot z (default-dynamic (gensym*))))
    CLIPS> (assert (foo))
    [TMPLTRHS1] Slot w requires a value because of its (default ?NONE) attribute.
    CLIPS> (assert (foo (w 3)))
    <Fact-0>
    CLIPS> (assert (foo (w 4)))
    <Fact-1>
    CLIPS> (facts)
    f-0     (foo (w 3) (x nil) (y gen1) (z gen2))
    f-1     (foo (w 4) (x nil) (y gen1) (z gen3))
    For a total of 2 facts.
    CLIPS>
    Quello che non riesco a comprendere sono le righe che vi ho evidenziato.
    Innanzitutto, se non ho capito male un template va a definire dei fatti i cui campi possono assumere valori non predefiniti.
    Per quanto riguarda la prima riga evidenziata la stringa ?NONE sta ad indicare che non viene definito alcun valore e quindi quando si fa a fare la prima asserzione giustamente chiede di definire un valore.
    Ecco, per questa prima cosa vorrei appunto una conferma.
    Per il resto delle righe il dubbio è relativo proprio ai valori. La stringa ?DERIVE dovrebbe indicare un valore nullo, almeno così mi sembra di capire da quello che il programma restituisce come output. Ovviamente vorrei una conferma anche su questa cosa.
    Per le ultime 2 righe evidenziate invece non riesco davvero a comprenderle.

    Mi aiutate a capirle?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    26
    Provo a darmi da solo una risposta sul significato di ?DERIVE.
    Da quello che ho capito ?DERIVE permette di assegnare automaticamente, in base al tipo, il valore di default appropriato per il tipo specificato. Il problema però è che in quell'esempio che vi ho postato il tipo non mi sembra sia stato definito.
    O sbaglio?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    26
    Scusate se intervengo di nuovo ma proprio nessuno lo sa?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.