2011-08-22 2 views
20

Sto indovinando che racchetta #lang è un dialetto del programma con molta più fuori delle strutture box e funzioni comuni e, forse, sarebbe più pedagogico. Quali sono i vantaggi di una racchetta #lang contro lo schema #lang?Differenze tra schema #lang e racchetta #lang

È meglio (o addirittura possibile) utilizzare lo schema #lang in racchetta per seguire tutto il contenuto di "Struttura e interpretazione dei programmi per computer" o anche "Come progettare programmi". HtDP è #lang racket specifico?

Qualunque sia il codice scritto in schema #lang, a patto che le biblioteche non sono inclusi, può essere utilizzato in regime di pollo o di qualsiasi interprete principale?

Grazie in anticipo.

risposta

30
  1. Sì, #lang racket è il dialetto racchetta di default, con un sacco di estensioni.

  2. Due luoghi dove non è un'estensione: if deve avere un ramo altro, e le coppie sono immutabili (senza set-car! e set-cdr!).

  3. #lang scheme è stato utilizzato per un po 'prima che il nome cambi, e ora #lang racket viene utilizzato in modo coerente. Ma abbiamo mantenuto #lang scheme in giro per la compatibilità (così come i vari scheme/--- librerie che vengono tenuti e possono a volte essere diverso da quello racket/--- controparti). Non c'è motivo di usare #lang scheme nel nuovo codice.

  4. Per seguire SICP, non utilizzare nessuno di questi - c'è un linguaggio piacevole che Neil Van Dyke ha scritto, vedere il suo web page per i dettagli.

  5. Per seguire HTDP, non utilizzare uno di questi, utilizzare i linguaggi degli studenti. Ci sono anche nuove varianti #lang basati su come #lang htdp/bsl ma non sono in una forma completa, ancora. (E HTDP è non#lang racket specifica.)

  6. No, racchetta è molto diverso da Schema di pollo. Potresti essere in grado di eseguire codice in entrambi, ma quelli sarebbero probabilmente solo piccoli esempi di giocattoli.

+0

Grazie mille per l'informazione Eli, essendo per lo scopo pedagogico andrò totalmente con la racchetta, quello che è stato molto cool di schema di pollo è la compilazione di parte C. – orlybg

+0

Con Racket non c'è molto bisogno di compilare in C - utilizza un compilatore just-in-time che funziona piuttosto bene. Se sei preoccupato di creare file eseguibili standalone piuttosto che velocità, allora ci sono modi per farlo anche tu - vedi 'raco exe' e' raco distribute'. –

+4

solo sottolineare una cosa qui: 'scheme' #lang è quasi esattamente la stessa di' #lang racket' - non è più simile a Schema di pollo, o per SICP o HTDP di 'racket' #lang è. –