Come faccio a eseguire un .scm script (al di fuori della REPL) con il MIT-Schema?

Voglio scrivere qualcosa come ” schema di file.scm’ e farlo interpretare il file, e poi voglio tornare al mio guscio, piuttosto che caricare la REPL.

edit: ho provato a regime < test.scm e si utilizza ancora il REPL, l’unica differenza è che il regime si chiude quando il flusso finisce.

InformationsquelleAutor | 2009-05-24

 

4 Replies
  1. 31

    scheme <file.scm dovrebbe funzionare (se non si specifica --interactive e stdin non è un terminale, schema funziona in modo non interattivo).

    • Questo non adempiere l’OP a cura del requisito di “non utilizzare il REPL”. Vedere questa risposta.
  2. 12

    Per eseguire uno schema di programma utilizzando MIT Schema:

    scheme --quiet < program.scm

    Il --quiet opzione garantisce che l’output del programma è l’unica cosa che viene visualizzata (cioè, non si vede il REPL, secondo le vostre esigenze).

    EDIT: Grazie per la possibilità che si possa errore di battitura < come >, con la conseguente sostituzione del vostro codice sorgente, vorrei suggerire di incapsulare il comando di cui sopra all’interno di uno script di shell o una funzione di shell. Per esempio:

    runscheme () {
        scheme --quiet < "$1"
    }

    Quindi è possibile eseguire runscheme program.scm senza la paura che il codice sorgente verrà sovrascritto. (Un grazie speciale a Paolo Rooney per portare questo potenziale errore la mia attenzione).

    Riferimenti

    scheme --help:

    –batch-mode, –quiet, –silent

    Sopprime l’avvio del rapporto di versioni e diritti d’autore, e la
    commiato.

    Questa opzione della riga di comando sembra essere stata erroneamente omessa la elenco delle opzioni della riga di comando nella documentazione, ma penso che questo sia un legimate opzione della riga di comando perché scheme --help mostra, e perché --batch-mode è utilizzato in altre parti del manuale di riferimento (ad es. qui).

    • non ottenere il < il modo sbagliato o la sovrascrittura del proprio codice sorgente, o è solo a me che fa cose del genere?
    • Se si tende a fare errori del genere, io suggerirei di scrivere uno script di shell o funzione di shell per eseguire il vostro Regime di programmi. Esempio di funzione di shell: runscheme () { scheme --quiet < "$1" }.
    • ok grazie. Io non tendono a fare errori del genere, troppo spesso. Scusa non era una critica la risposta. L’ho appena fatto e mi ha fatto ridere quando mi resi conto di cosa era successo.
    • Modificato la risposta in modo che altri possano evitare tali errori in futuro. Grazie per aver portato alla mia attenzione.
    • mi dispiace davvero non ha intenzione di cambiare la risposta. Ho solo pensato che fosse divertente. Vorrei dare un voto positivo, ma l’ho fatto già.
  3. 0

    controllato chez --help, e poi ho trovato questo(diciamo che sto utilizzando chez schema):

    chez --script ./temp.scm

    Anche, --verbose è molto utile:

    chez --verbose --script ./temp.scm
    • La questione è di circa MIT Regime, e non su Chez Regime.

Lascia un commento