ML staan ​​vir “metataal”, en ML is lid van die algemene programmeringstaalfamilie.
Soos baie vroeë programmeringstale, is ML deur die akademiese gemeenskap vir navorsingsdoeleindes geskep, en die funksies daarvan beïnvloed baie programmeertale wat in sy voetspore gevolg is.
2 Kort geskiedenis van ML
4 Begin met ML
4.1 U ML-ontwikkelingsomgewing
5.1 ML Kursusse en tutoriale
6 Beweeg vorentoe
ML is ‘n multi-paradigma, uitgebreide funksionele programmeringstaal. Dit word ook gereeld bestempel as ‘n ‘onsuiwer’ funksionele taal, omdat dit newe-effekte moontlik maak. ML se noodsaaklike funksies is gebou op ‘n funksionele kern.
Dit is veral nuttig vir metaprogrammering – skryfprogramme wat ander programme manipuleer, en dit is die oorspronklike doel van ML. ML is bekend vir die gebruik van die Hindley-Milner-stelsel wat outomaties die soorte van die meeste uitdrukkings kan toeken sonder eksplisiete aantekeninge..
ML word gebruik vir ‘n wye verskeidenheid programmering:
Analiseerders, samestellers, programmeertale;
Toepassings vir finansiële stelsels;
Bioinformatika en genealogiese databasisse.
ML word ook in onderwys gebruik, in inleidende programmeringskursusse om basiese programmeringslogika en -metodes te demonstreer.
Kort geskiedenis van ML
Die ML-programmeringstaal is in die 1970’s ontwikkel deur Robin Milner en sy kollegas aan die Universiteit van Edinburgh tydens hul werk aan die Logic for Computable Functions (LCF) – ‘n interaktiewe outomatiese stellingspreker. LCF is in ML geïmplementeer en in 1972 bekendgestel. ML se sintaksis is geïnspireer deur die ISWIM-programmeertaal.
ML het verder ontwikkel tot verskillende programmeertale, almal deel van die ML-familie. Die twee belangrikste dialekte vandag is Standard ML (SML) en OCaml. Funksies en idees van ML beïnvloed baie ander tale soos Cyclone, Elm, Nemerle, Haskell, C ++, en andere.
Dit is ‘n streng getikte taal wat gebruik maak van die Hindley-Milner-stelsel om tipesveiligheid te verseker. As gevolg hiervan, veroorsaak ‘n goed-getikte ML-program nie lopietydfoute nie. Die sintaksis en vloeibestuur verskil in wese van die C-tipe tale, dus vind u nie triviale kartering tussen C- en ML-kode nie.
ML bevat ‘n outomatiese geheuebestuurstelsel deur vullisverwydering, waar geheue outomaties deur die samesteller toegewys en bevry word. Parametriese polimorfisme word ondersteun, wat beteken dat u ‘n enkele polimorfiese funksie kan skryf wat ‘n parameter van enige versoenbare tipe kan neem.
ML het eersteklasfunksies en leksikale sluitings, wat dit baie maklik maak om veelvuldige funksies op te stel, ‘n taak wat baie noodsaaklik is in noodsaaklike programmeringstale..
ML ondersteun ook polimorfe rekursiewe datatipes met patroonaanpassing, en het ‘n uitstekende modulestelsel wat rondom strukture en handtekeninge gesentreer is. Dit maak hoofsaaklik gebruik van gretige evaluering, wat beteken dat alle sube-uitdrukkings altyd geëvalueer word, terwyl lui-evaluering nog steeds deur die gebruik van sluitings bereik kan word.
Begin met ML
As u vorige ervaring in programmeringsmetodes en -logika het, sal dit moeilik wees om met ML-programmering te begin. As ML egter u eerste inleiding tot programmering is, moet u met basiese tutoriale en kursusse begin, voordat u verder gaan met meer veeleisende kursusse..
U moet natuurlik u eie persoonlike ML-ontwikkelingsomgewing opstel. Ons beveel aan dat u die standaard ML of New Jersey (SML / NJ) afgeleide en samesteller gebruik, aangesien dit die eerste en gewildste samesteller vir die ML-programmeringstaal is.
SML / NJ word tans ondersteun op die groot drie platforms vir bedryfstelsels: Mac OS X, Linux en Windows. Met ander woorde, u hoef nie probleme te hê om ‘n ML-ontwikkelingsomgewing op elke rekenaar te bestuur nie.
Die installering van ML op hierdie platforms is eenvoudig en goed gedokumenteer. Kies die regte aflaai vir u platform op die SML / NJ-aflaaibladsy en volg die installeringsinstruksies.
ML bestaan ​​al jare, so daar is geen tekort aan verskillende bronne nie. As dit kom by die aanleer van die taal, is dit altyd ‘n goeie ding. Maar onthou dat baie ML-bronne redelik oud is en moontlik verouderd is.
Ons soektog het gefokus op relevante en relatief onlangse tutoriale, e-boeke en interaktiewe kursusse. Selfs ou hulpbronne kan egter nuttig wees as u net aan die gang is.
ML Kursusse en tutoriale
Fokus op teoretiese bronne is ‘n goeie manier om u eerste stappe in ML-programmering te neem, maar sodra u die basiese beginsels bemeester het, moet u na praktiese voorbeelde oorgaan..
Om die volle potensiaal van ML werklik te waardeer, moet u dit in aksie sien. Sodra u gemaklik is met die basiese sintaksis, kan u u opleiding na die volgende vlak neem en praktiese gidse en tutoriale probeer:
Programmering in Standard ML ’97: ‘n Aanlyn-tutoriaal deur Stephen Gilmore: dit is ‘n gratis ML-tutoriaal wat belangrike konsepte in die ML-taal bekendstel en met kort voorbeelde illustreer. Dit is in verskillende formate beskikbaar.
Programmering in Standard ML (pdf) deur Robert Harper: dit is ‘n gratis ML-tutoriaal wat gemaak is vir die Carnegie Mellon-universiteitskursus “Rekenaarwetenskap 12-212: Beginsels van programmering.”
A Gentle Introduction to ML deur Andrew Cumming: dit is ‘n gratis kursus met ‘n inleiding en sewe lesse oor ML met baie ander nuttige bronne.
Wenke vir rekenaarwetenskaplikes oor standaard ML (hersien) (pdf) deur Mads Tofte: dit is ‘n gratis boek met talle nuttige wenke oor ML-programmering.
Die volgende stap is om te konsentreer op meer uitgebreide hulpbronne, soos praktiese tutoriale met baie voorbeeldkode. Hierdie lewenswerklike voorbeelde sal u help om ML-programmering te verstaan. Ons het ‘n paar van die algemeenste verwys:
Standard ML van New Jersey Gebruikershandleiding: dit is ‘n aanlyngids vir programmering in Standard ML met behulp van SML / NJ, wat alles dek vanaf die installering van SML / NJ tot FAQ, spesiale funksies, samestellingstruktuur en biblioteke..
Die Standard ML-basisbiblioteek is ‘n aanlynverwysing vir die Standard ML-basisbiblioteek.
Ons het ook ‘n paar boeke oor ML-programmering ingesluit. Baie van hierdie e-boeke word deur ML-opvoeders aanbeveel, en hulle sal handig te pas kom terwyl u aan praktiese gidse en tutoriale werk:
ML for the Working Programmer, 2de uitgawe deur L C Paulson: dit fokus op die uiteensetting van programmering in die ML-taal, en die onderrig van die grondbeginsels van funksionele programmering..
Elemente van ML-programmering, ML97-uitgawe (2de uitgawe) deur Jeffrey D Ullman: hierdie boek bied ‘n hoogs toeganklike, stap-vir-stap inleidende tutoriaal oor ML-programmering en ‘n volledige verwysing na en verduideliking van gevorderde funksies. Geen vorige kennis van ML of funksionele programmering is nodig nie.
The Little MLer van Felleisen en Friedman: hierdie boek stel diegene wat nuut is in programmering, sowel as dié wat in ander programmeringstale ondervind is, bekend aan die beginsels van tipes, berekening en programkonstruksie..
Soos met alle programmeertale, word ML uiteindelik geleer deur dit te doen. Laat u ontwikkelingsomgewing dus opstel, en begin met die hulp van hierdie hulpbronne kodering. Sterkte!
Leer meer oor ander interessante programmeertale.