name=Haskell nameURL=http%3A%2F%2Fwww.haskell.org%2F see= logo= type=F%20-%20Functional%20or%20lambda-based desc=Haskell%20is%20a%20non-strict%20purely%20functional%0D%0Alanguage%2C%20usually%20interpreted%2C%20designed%0D%0Aby%20representatives%20of%20the%20functional%0D%0Aprogramming%20community.%20%20The%20motivation%0D%0Afor%20Haskell%20was%20unification%20of%20functional%0D%0Aprogramming%20through%20the%20introduction%20of%0D%0Aa%20standard%2C%20widespread%2C%20modern%20language.%0D%0A%3Cbr%3E%0D%0AHaskell%20is%20a%20strongly%20typed%20language%20with%0D%0Aa%20rich%20type%20system.%20%20As%20in%20all%20functional%0D%0Alanguage%2C%20computations%20are%20performed%20only%0D%0Aby%20expressions%3B%20every%20expression%20has%20a%20%0D%0Atype.%20%20Primitive%20data%20types%20supplied%20by%20the%0D%0Alanguage%20include%3A%20integers%2C%20reals%2C%20characters%2C%20%0D%0Alists%2C%20enumerations%2C%20tuples%2C%20and%20various%0D%0Afunction%0D%0Amappings.%0D%0AHaskell%20language%20implementations%20perform%0D%0Astatic%20type%20checking%20prior%20to%20execution.%0D%0A%3Cbr%3E%0D%0AHaskell%20functions%20are%20defined%20as%20mappings%0D%0Abetween%20parts%20of%20the%20type%20space.%20%20Of%20course%2C%0D%0Acomposition%2C%20curried%20functions%2C%20lambda%20forms%2C%0D%0Aand%20higher-order%20functions%20are%20supported.%0D%0AHaskell%20uses%20lazy%20evaluation.%20%20%0D%0AIt%0D%0Aalso%20permits%20definition%20of%20operators%20as%0D%0Afunctions%20%28operator%20overloading%29%2C%20a%20convenience%0D%0Afeature%20that%20is%20unusual%20in%20functional%20programming%0D%0Asystems.%0D%0A%3Cbr%3E%0D%0AModularity%20is%20explicitly%20supported%20by%20Haskell.%0D%0APrograms%20consist%20of%20named%20modules.%20%20The%0D%0Amodule%20facility%20provides%20distinct%20namespaces%0D%0Aand%20a%20means%20for%20defining%20encapsulated%0D%0Aabstract%20data%20types.%0D%0AHaskell%27s%20module%20features%20allow%20some%20degree%0D%0Aof%20object%20oriented%20programming.%0D%0A%3Cbr%3E%0D%0AThe%20Haskell%20standard%20library%20is%20written%0D%0Ausing%20the%20module%20facility.%20%20It%20provides%0D%0Aadditional%20numeric%20data%20types%2C%20various%0D%0Astandard%20aggregate%20types%20like%20arrays%0D%0Aand%20lists%2C%20system%0D%0Ainterface%20and%20I%2FO%20facilities%2C%20time%20and%20date%0D%0Ahandling%2C%20and%20random%20number%20generation.%0D%0A%3Cbr%3E%0D%0ASeveral%20free%20academic%20implementations%20of%20%0D%0AHaskell%20are%20available%2C%20and%20good%20documentation%0D%0Ais%20available%20at%20the%20main%20Haskell%20web%20site.%0D%0A origin=Haskell%20Committee%20%28Hughes%2C%20Wadler%2C%20Peterson%20%3Ci%3Eet%20al%3C%2Fi%3E%29%2C%201990. seealso=FP%2C%20Miranda%2C%20Clean%2C%20ML%2C%20Gofer remark=The%20language%20is%20named%20after%20Haskell%20B.%20Curry%2C%0D%0Aa%20logician%20and%20mathematician%20who%0D%0Aworked%20on%20function%20theory%3B%20many%20ideas%20in%0D%0Afunctional%20programming%20originated%20with%20Curry%0D%0A%28including%20the%20notion%20of%20curried%20functions%29.%0D%0A%3Cbr%3E%0D%0ATwo%20main%20Haskell%20implementations%2C%0D%0AGlasgow%20Haskell%20Compiler%20%28GHC%29%20and%20%0D%0AYale%2FNottingham%20Hugs%20are%20based%20on%20C.%20%20GHC%0D%0Ais%20a%20Haskell-%26gt%3BC%20translator%2C%20and%20Hugs%0D%0Ais%20an%20interpreter%20coded%20in%20C.%0D%0A%3Cbr%3E%0D%0AAs%20of%20the%20end%20of%201997%2C%20the%20current%20version%0D%0Aof%20the%20Haskell%20language%20definition%20was%201.4.%0D%0AA%20revised%20language%20definition%2C%20to%20be%20called%0D%0A%3Ci%3EStandard%20Haskell%3C%2Fi%3E%2C%20should%20be%20%0D%0Afinalized%20in%201998. links1=The%20Haskell%201.4%20Language%20Report%3Dhttp%3A%2F%2Fhaskell.systemsz.cs.yale.edu%2Fonlinereport%2F links2=main%20Haskell%20site%20in%20Europe%3Dhttp%3A%2F%2Fwww-i2.informatik.rwth-aachen.de%2FForschung%2FFP%2FHaskell%2F links3=Haskell%20download%20area%20at%20Chalmers%3Dftp%3A%2F%2Fftp.cs.chalmers.se%2Fpub%2Fhaskell%2F links4=Introduction%20to%20Functional%20Programming%20using%20Haskell%3Dhttp%3A%2F%2Fwww.laurentian.ca%2Fwww%2Fmath%2Fbadams%2Fcosc1047%2Fhaskell%2Fhaskell.htm links5= date=Last%20updated%2012%2F21%2F97 sample=%3Cpre%3E%0D%0A--%20Stable%20quicksort%20in%20Haskell%20by%20Lennart%20Augustsson%0D%0A--%20%0D%0A%0D%0Amodule%20QSort%28sortLe%2C%20sort%29%20where%0D%0A%0D%0AsortLe%20%3A%3A%20%28a%20-%3E%20a%20-%3E%20Bool%29%20-%3E%20%5Ba%5D%20-%3E%20%5Ba%5D%0D%0AsortLe%20le%20l%20%3D%20qsort%20le%20%20%20l%20%5B%5D%0D%0A%0D%0Asort%20%3A%3A%20%28Ord%20a%29%20%3D%3E%20%5Ba%5D%20-%3E%20%5Ba%5D%0D%0Asort%20%20%20%20%20%20l%20%3D%20qsort%20%28%3C%3D%29%20l%20%5B%5D%0D%0A%0D%0A--%20qsort%20is%20stable%20and%20does%20not%20concatenate.%0D%0Aqsort%20le%20%5B%5D%20%20%20%20%20r%20%3D%20r%0D%0Aqsort%20le%20%5Bx%5D%20%20%20%20r%20%3D%20x%3Ar%0D%0Aqsort%20le%20%28x%3Axs%29%20r%20%3D%20qpart%20le%20x%20xs%20%5B%5D%20%5B%5D%20r%0D%0A%0D%0A--%20qpart%20partitions%20and%20sorts%20the%20sublists%0D%0Aqpart%20le%20x%20%5B%5D%20rlt%20rge%20r%20%3D%0D%0A%20%20%20%20--%20rlt%20and%20rge%20are%20in%20reverse%20order%20and%20must%20be%20sorted%20with%20an%0D%0A%20%20%20%20--%20anti-stable%20sorting%0D%0A%20%20%20%20rqsort%20le%20rlt%20%28x%3Arqsort%20le%20rge%20r%29%0D%0Aqpart%20le%20x%20%28y%3Ays%29%20rlt%20rge%20r%20%3D%0D%0A%20%20%20%20if%20le%20x%20y%20then%0D%0A%20%20%20%20%20%20%20%20qpart%20le%20x%20ys%20rlt%20%28y%3Arge%29%20r%0D%0A%20%20%20%20else%0D%0A%20%20%20%20%20%20%20%20qpart%20le%20x%20ys%20%28y%3Arlt%29%20rge%20r%0D%0A%3C%2Fpre%3E _store=1 _add=Haskell _usertab=1 _usersearch=0 _format=full = name=Hope nameURL=http%3A%2F%2Fwww.unl.ac.uk%2F%7Erpaterson%2FHope%2F see= logo= type=F%20-%20Functional%20or%20lambda-based desc=Hope%20is%20a%20small%2C%20simple%20functional%20language%0D%0Abased%20function%20composition%20and%0D%0Aon%20the%20idea%20of%20%27call-by-pattern.%27%0D%0AA%20Hope%20program%20consists%20of%20a%20set%20of%20%0D%0Amodules%2C%20each%20of%20which%20can%20contain%0D%0Asets%20of%20recursion%20equations.%0D%0ACurrent%20implementations%20of%20Hope%0D%0Ause%20full%20lazy%20evaluation.%0D%0AUnlike%20some%20of%20the%20original%20functional%0D%0Alanguages%2C%20Hope%20is%20strongly%20typed.%0D%0A%3Cbr%3E%0D%0AThere%20were%20a%20couple%20of%20dialects%20of%20Hope%2C%0D%0Acorresponding%20to%20different%0D%0Agroups%27%20implementations.%20%20The%20one%20that%20seems%20%0D%0Aavailable%20today%20was%20originally%20called%20Hope%2B.%0D%0A%3Cbr%3E%0D%0AData%20types%20supported%20by%20Hope%20include%0D%0Anumbers%2C%20symbols%2C%20strings%2C%20lists%2C%20and%20tuples.%0D%0A%28Constituents%20of%20a%20list%20must%20be%0D%0Aall%20the%20same%20type%2C%20while%20tuples%20can%0D%0Abe%20heterogenous.%29%20%20A%20Hope%20programmer%0D%0Acan%20define%20their%20own%20primitive%20and%0D%0Aaggregate%20types.%20%20This%20ability%20to%0D%0Acreate%20true%20abstract%20data%20types%20is%0D%0Aa%20novel%20feature%20in%20functional%20languages.%0D%0AModern%20implementations%20of%20Hope%20use%0D%0Alazy%20evaluation.%0D%0A%3Cbr%3E%0D%0AA%20free%20implementation%20of%20the%20Hope%0D%0Ainterpreter%20is%20available%20for%0D%0AMS-DOS%2C%20Unix%2C%20and%20Macintosh. origin=Burstall%201978%2C%20Kewley%20%3Ci%3Eet%20al%3C%2Fi%3E%201985. seealso=FP%2C%20ML%2C%20Clean%2C%20Haskell%2C%20Mathematica remark=Hope%20was%20apparently%20the%20first%20%0D%0Afunctional%20language%0D%0Ato%20employ%20argument%2Freturn%20pattern-matching%0D%0Aas%20a%20polymorphism%20semantic.%20%20This%0D%0Akind%20of%20approach%20is%20carried%20on%20today%0D%0Ain%20some%20symbolic%20programming%0D%0Asystems%2C%20notably%20Mathematica%2C%20as%20well%0D%0Aas%20many%20newer%20functional%20languages.%0D%0A%3Cbr%3E%0D%0AThe%20original%20language%20Hope%20was%20developed%0D%0Aat%20Edinburgh%20U.%20by%20Burstall%20in%20the%20late%0D%0A1970s.%20%20A%20successor%2C%20called%20Hope%2B%2C%20was%0D%0Adeveloped%20at%20ICL%20by%20J.%20Kewley%2C%20T.%20Thomson%2C%20%0D%0Aand%0D%0Aothers%20in%20the%20mid-1980s%3B%20%0D%0Athe%20first%20implementation%20used%0D%0Aeager%20evaluation%2C%20but%20later%0D%0Aones%20switch%20to%20the%20more%20advanced%0D%0Alazy%20evaluation%20strategy.%0D%0A links1=Hope%20FTP%20Site%3Dftp%3A%2F%2Fbrolga.cc.uq.oz.au%2Fpub%2Fhope%2F links2=On-line%20Hope%20interpreter%3Dhttp%3A%2F%2Fwww.unl.ac.uk%2F%7Erpaterson%2FHope%2Ftry.cgi%3Ffile%3Dexamples.src%26line%3D201 links3= links4= links5= date=Last%20updated%209%2F28%2F98 sample=A%20module%20for%20listing%20the%20contents%20of%20a%0D%0Atree%20by%20breadth-first%20traversal%20using%0D%0Alazy%20evaluation%2C%20from%20R.%20Patterson%27s%0D%0AHope%20web%20page.%0D%0A%3Cp%3E%0D%0A%3Cpre%3E%0D%0Ause%20lists%2C%20functions%2C%20products%3B%0D%0A%0D%0Atype%20rose_tree%20alpha%20%3D%3D%20alpha%20%23%20list%28rose_tree%20alpha%29%3B%0D%0A%0D%0A%20%20dec%20bf_list%20%3A%20rose_tree%20alpha%20-%26gt%3B%20list%20alpha%3B%0D%0A%20%20%20%20%20---%20bf_list%20t%20%26lt%3B%3D%20%5Bt%5D.%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20iterate%20%28concat%20o%20map%20snd%29.%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20front_with%20%28%2F%3D%20%5B%5D%29.%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20concat.%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20map%20fst%3B%0D%0A%3C%2Fpre%3E _store=1 _add=Hope _usertab=1 _usersearch=0 _format=full = name=HyperTalk nameURL=http%3A%2F%2Fhypercard.apple.com%2F see= logo= type=C%20-%20Command%20or%20Scripting desc=HyperTalk%20is%20the%20scripting%20language%20for%0D%0AApple%27s%20information%20presentation%20%0D%0Asystem%20HyperCard.%20%20It%20has%20a%20simple%20and%0D%0AEnglish-like%20syntax%2C%20a%20modest%20set%20of%0D%0Ageneral%20and%20application-specific%0D%0Adata%20types%2C%20and%20the%20usual%20procedural%0D%0Acontrol%20structures.%20%20HyperTalk%20was%0D%0Adesigned%20to%20allow%20HyperCard%20information%0D%0Acollections%2C%20which%20are%20called%20%22stacks%22%2C%0D%0Ato%20be%20more%20dynamic%20and%20interactive.%0D%0ABecause%20Apple%20envisioned%20the%20users%0D%0Aof%20HyperTalk%20to%20be%20multimedia%20developers%0D%0Aand%20not%20traditional%20programmers%2C%20they%0D%0AHyperTalk%20interpreter%20was%20designed%20to%0D%0Abe%20very%20forgiving%3A%20it%20allows%20various%0D%0Asyntactic%20sugar%2C%20type%20conversion%20is%0D%0Aautomatic%2C%20and%20everything%20is%20case-insensitive.%0D%0A%3Cbr%3E%0D%0AMost%20of%20a%20HyperTalk%20program%20will%20often%0D%0Aconsist%20of%20handers%2C%20subroutines%20to%20be%0D%0Acalled%20when%20the%20end-user%20performs%20some%0D%0Aaction%20or%20when%20a%20certain%20condition%20obtains.%0D%0AHyperTalk%20supports%20the%20notion%20of%0D%0Aadd-on%20%27external%27%20functions%20and%0D%0Acommands%3B%20these%20are%20roughly%20analogous%0D%0Ato%20library%20modules%20in%20a%20language%20like%20C.%0D%0A%3Cbr%3E%0D%0AHyperCard%202%20compiles%20individual%20HyperTalk%0D%0Afunctions%20into%20intermediate%20codes%20the%0D%0Afirst%20time%20the%20function%20is%20called.%20%20This%0D%0Ais%20done%20to%20reduce%20start-up%20time%20for%0D%0AHyperCard%20applications.%0D%0A%3Cbr%3E%0D%0AThere%20are%20several%20versions%20of%20HyperTalk.%0D%0AThe%20two%20main%20versions%20from%20Apple%20%0D%0Acorrespond%20to%20HyperCard%20releases%201%20and%202.%0D%0AAldus%20SuperCard%20supports%20a%20superset%20of%0D%0AHyperTalk%20called%20SuperTalk.%0D%0ACommercial%20implementations%20of%20both%0D%0Aare%20available%20for%20the%20Macintosh.%20%20At%20%0D%0Aone%20time%2C%20SuperCard%20was%20also%20available%0D%0Afor%20MS-Windows%2C%20but%20that%20may%20not%20be%20%0D%0Atrue%20anymore. origin=Atkinson%20and%20Winkler%2C%20Apple%20Computer%2C%201986%3F seealso=Lingo%2C%20AppleScript remark=HyperTalk%20continues%20to%20evolve%20along%20with%0D%0Athe%20HyperCard%20product%20%28version%203%20due%20soon%29%2C%0D%0Abut%20it%20is%20unclear%20whether%20it%20is%20still%0D%0Agoing%20to%20be%20a%20viable%20language.%20%20Apple%0D%0Ais%20touting%20AppleScript%20as%20THE%20scripting%0D%0Alanguage%20for%20all%20Macintosh%20applications%2C%0D%0Aso%20HyperTalk%20may%20be%20superseded.%0D%0A%3Cbr%3E%0D%0AHyperTalk%20was%20very%20influential%20on%20the%0D%0Aniche%20area%20of%20multimedia%20scripting%0D%0Alanguages.%20%20For%20example%2C%20the%20scripting%0D%0Alanguage%20used%20by%20the%20current%20%28c.%201997%29%0D%0Amarket%20leader%20in%20multimedia%20authorware%0D%0Aresembles%20HyperTalk%20in%20many%20respects. links1=Hypercard%20FAQ%20Page%3Dhttp%3A%2F%2Fwww.glasscat.com%2Fhypercard2%2Ffaq%2Ffaq.html links2=Hypercard%20Heaven%3Dhttp%3A%2F%2Fmembers.aol.com%2Fhcheaven%2Findex.html links3= links4= links5= date=Last%20updated%2012%2F7%2F97 sample= _store=1 _add=Hypercard _usertab=1 _usersearch=0 _format=full =