Domanda

Ho appena iniziato uno dei miei corsi, dato che le lezioni sono iniziate appena 2 settimane fa, e proprio adesso stiamo imparando Scheme in uno perché presumo qualche motivo più avanti, ma finora quello che insegna è fondamentalmente come scrivere in schema .Mentre sono seduto qui cercando di rimanere sveglio, sto solo cercando di capire perché vorrei saperlo e perché qualcuno lo usa.In cosa eccelle?La prossima settimana ho intenzione di chiedergli qual è l'obiettivo da imparare qui oltre a come scrivere cose secondo lo schema.

È stato utile?

Soluzione

È un linguaggio di programmazione funzionale e amplierà la tua esperienza.

Anche se non lo usi nel mondo reale non significa che non abbia alcun valore.Ti aiuterà a padroneggiare cose come la ricorsione e ti aiuterà a costringerti a pensare ai problemi in modi diversi da quelli che faresti normalmente.

IO desiderio la mia scuola ci ha costretto a imparare un linguaggio di programmazione funzionale.

Altri suggerimenti

Linguaggi come LISP (e lo Scheme strettamente correlato) stanno alla programmazione come il latino sta all'inglese.

Potresti non parlare mai più latino nella tua vita normale dopo aver seguito un corso, ma semplicemente imparare una lingua come il latino migliorerà la tua capacità di usare l'inglese.

Lo stesso vale per Schema.

Vedo tutte queste persone qui dire che, anche se non userebbero mai più Scheme, è comunque un linguaggio utile da imparare perché costringe a un certo modo di pensare.Anche se questo può essere vero, spero che imparerai Scheme perché alla fine lo troverai utile e non semplicemente come esercizio di apprendimento.

Sebbene non sia straordinariamente veloce come un linguaggio compilato, né sia ​​particolarmente utile per servire siti Web o analizzare testo, ho scoperto che Scheme (e altri lisp per estensione) non ha eguali quando si tratta di semplicità, eleganza e potente manipolazione funzionale. di strutture dati complesse.Ad essere onesti, penso in Scheme.È la lingua in cui risolvo i problemi.Non arrenderti e non tollerare semplicemente Scheme: dagli una possibilità e non ti deluderà.

A proposito, il miglior IDE per Scheme è Dottor Scheme, e contiene estensioni linguistiche per fare tutto ciò che puoi fare in un'altra lingua, e se trovi qualcosa che non puoi fare puoi semplicemente usare C FFI e scriverlo tu stesso.

Alcune persone dicono che il più grande punto di forza di Scheme è come lingua di insegnamento.Sebbene sia molto vantaggioso apprendere la programmazione funzionale (è un modo di pensare completamente nuovo), un altro vantaggio nello schema di apprendimento è che è anche "puro".Certo non può fare un sacco di cose come Java, ma è anche questo che lo rende fantastico, è un linguaggio fatto interamente di parentesi, caratteri alfanumerici e solo una manciata di altri segni di punteggiatura.

Nel mio corso introduttivo, ci viene insegnato Java e vedo molti dei miei amici alle prese con "public static void main" anche se non è questo lo scopo del programma e come i professori non abbiano altra scelta se non "sbandierarlo" finché non " sei più avanzato.Non lo vedi in Scheme.

Se vuoi davvero sapere cosa può fare Scheme in un gioco da ragazzi che è davvero difficile da implementare in linguaggi come Java, ti suggerisco di guardare questo: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_sec_1.3

Questo è probabilmente il miglior libro scritto su Scheme.

Suggerirei di mantenere un mente aperta quando si impara.La maggior parte delle volte a scuola non comprendiamo appieno cosa/perché stiamo imparando una particolare materia.Ma come ho sperimentato circa un milione di volte nella vita, si rivela molto utile e per lo meno esserne consapevoli aiuta.Scheme, che tu ci creda o no, ti renderà un programmatore migliore.

Lo schema è stato utilizzato dalla NASA per programmare alcuni rover su Marte.Il suo utilizzo sul mercato è piuttosto specifico, ma come sono sicuro che i tuoi insegnanti ti diranno, le cose che impari in Scheme verranno trasferite alla programmazione in generale.

Il mio problema è stato che quando abbiamo imparato questo abbiamo imparato anche il clisp.Non potevo mantenere i due stretti per salvarmi la vita.

Ciò che ho imparato da loro è stato come scrivere codice C e Java migliore.Ciò è semplicemente dovuto al diverso stile di programmazione che ho imparato.Ho adattato maggiormente lo stile funzionale in alcuni dei miei programmi e in alcuni casi mi ha aiutato.

Non vorrei mai più programmare in Scheme o in Lisp se non dovessi farlo, ma sono felice di averli provati almeno un po' solo per imparare un modo diverso di programmare.

Cerca di non farti prendere da dettagli come la parentesi e l'auto/cdr.La maggior parte di ciò che stai imparando si traduce in altre lingue in un modo o nell'altro.Non preoccuparti se puoi o meno portare Scheme sul mercato, è probabile che imparerai altre lingue più commerciabili in altre classi.Ciò che stai imparando qui è più importante.

Se stai imparando lo schema, puoi imparare tutto su come vengono implementati i sistemi di oggetti (suggerimento:un sistema di oggetti non riguarda sempre un tipo a cui sono associati metodi e variabili di istanza...).Anche se questo tipo di conoscenza non ti aiuterà nel 95% del tuo lavoro quotidiano, per il 5% del tuo lavoro dipenderai da quella conoscenza.

Inoltre, puoi conoscere stili di calcolo completamente diversi, come flussi/valutazione pigra o persino programmazione logica.Potresti anche imparare di più su come vengono interpretati i programmi per computer in generale;dalle nozioni di base su come viene valutato il codice del programma, ad aspetti più profondi come creare il proprio interprete e compilatore).Conoscere questo tipo di informazioni è ciò che distingue un buon programmatore da un grande programmatore.

Lo schema non è realmente un linguaggio funzionale, è più indipendente dal metodo di quello.Forse più precisamente, Scheme è un linguaggio eccellente da scegliere se si desidera esplorare diversi metodi di calcolo.Ad esempio, sopra Scheme è stato creato un linguaggio funzionale altamente parallelo "Termite".

In breve, lo scopo dello schema di apprendimento è che tu possa apprendere i fondamenti della programmazione.

Se hai bisogno di aiuto per rendere più divertente la programmazione in Scheme, non aver paura di chiedere.Molti programmatori rimangono bloccati (ad esempio) sulle parentesi, quando ci sono modi perfetti per lavorare con il codice sorgente dello schema che rende la parentesi qualcosa da amare, piuttosto che da odiare.Ad esempio, emacs con la modalità paredit, una sorta di modalità di interazione dello schema e la modalità parentesi evidenziata è davvero fantastico.

I linguaggi funzionali come Scheme hanno grandi applicazioni in matematica, intelligenza artificiale, linguistica e altre aree altamente teoriche dell'informatica (apprendimento automatico, elaborazione del linguaggio naturale, ecc.).Ciò è dovuto alla purezza dei linguaggi di programmazione funzionale, che non hanno effetti collaterali, nonché alla loro capacità di navigare con facilità nelle procedure di ordine superiore.Una conoscenza approfondita dei linguaggi di programmazione funzionale è fondamentale per risolvere molte delle domande che si aggirano appena oltre la frontiera dell'informatica.Come bonus, diventerai eccezionale con le procedure di ordine superiore e la ricorsione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top