Недавно прочитал в "Компьютерном Обозрении" статью об этом языке (http://itc.ua/article.phtml?ID=26721).
Решил поэксперементировать. Итак, вычисление факториала от 5000 рекурсивным способом занимает меньше секунды.
Результат вычисления (извиняйте за столь большой результат, но согласитесь это впечетляет):
422857792660554352220106420023358440539078667462664674884978240218135
805270810820069089904787170638753708474665730068544587848606668381273
633721089377278763127939036305846216064390447898698223987192970889621
161265296832177550039924219683703146907264472878789790404754884162215
226671928410969236910449565971736352948400223840381120644820230857671
104502306174894755428309761781724040805324809927809328784055486199364
548291211876258248802189173977900050213212598043639244626460770511358
846595108675470585833924655225589035474435988347383178988034633008458
631510209091509935653820010933047965742556741930917055172805200236075
085991197635228755907902043369743123506916831211924495971556267407521
462198986233088625998302859864857578749445963115286970886710046268423
648178989905454690861391613218344174148807186234448114831209490361196
546872767755617886828720269104814092456410341835975604276458161513178
575901661071782544156980883359372729995603371371200471049437656291142
488605335299499642300699972204918120100819059439140675053265004775533
850899097945101551091486907004407119572336026243368132330218709287699
196806656569752790422258267841561083376425781032629202687211070274681
394351128601502326190649959171897364176378436491219709109840944514895
358959103804176941956657834822071749105512752639148381172052604826965
162642710094919393332661030104360530459117014557209584714353721948246
686793467375904872268133410207860903657108806376616249749507413107077
401682180585945526445171409277469230062697511346044174567946735828782
2616295842486751573791729427241787831054298582451175755118845065744248
2757466080023858837849239624736876150701576772589832112863229553704490
2516387925127590841791744640466913531047347984464996154595542013996317
3574763017400367961929199421907628954456562617670417995381611333873128
2351153415258130908791588363835166479722591294427065355714251173732380
7232632958121797916679692329687096923901003255574789055099807487061047
2306461959849552396576122086738665141716993075576918979026751573420758
6479634533844683508596549072732632191050406428971309622450516206466946
80988699171221274045040206849232662417601329102278666872703052847094525
26825496617772499645206699836925910690894082637401043498371591126455822
28060636139411534431677176993435366428492829443641476961588199366138825
55774877099370045947539078451490344345211745605940399162684446976618213
87470705325559577933196460996662145377564935474169708562389214773222865
50718249043001618614219276045230767062114296176727470412361610722000974
37586474927536651495321647808490751463300710166913134206628825626182838
65836983632108760710427516073348347788414796732427080410860761841281888
30711509898213533840661065214708704687476099542747367350945155359976904
03673533855510525716826503176824057439934148623923319814325791821933218
98940450865013610998098383993110996355981328001049731588596312131853801
20504678764291066936560043730563343198487904899852470129330078934453286
81566797628804955328463860201334802652798369463933849956750499937078147
46561543438930431384237878981847802886009971088695632988347711863122382
78596365311513237793137364739742936941149902875197222799954518261548829
89511519266821124513553184722099904353559498872999220350620398160110863
76236539782172380237846650673624510635034423187315338308212043804710999
41922782103974755271741604389016972396130554937184483611980356589606202
50090936643993601720073836133544050943290724765189095025077246758419894
12224659392163116352038147362479528539732089309533421910635702805576629
72015655651076778080593345363112182956179288767300280245093212277885296
84182082617784769556449803856912757873726780409591587117339711031652326
78060798127609246173504120182666874262805385275843979167609007743380748
42075118511910292196033937628098675366508521286925532153678793252188257
41018661370543289737358627253701785588066398513503869440396049282588201
80419178073649693885802597758398892014389747165465973510852605706234402
06963706566012953573404358296147342727580563083951066737534925965951857
56469397232182757800032505938953038205396975588705115430739208274224405
162997087395997684612062466290981123680125798912848025050940289169597650
793954371913113793144274051355996303756422145272943417972461875979640742
391478389935415658347161568584990367730566113538333670875489004130919816
763307490415103375973072468858392469417155482957307506185058815819595289
92660225626903439573313450666972952115230668696227920947779974336574472
67347140892807141128388808269337737807729310411076751363947620061085804
05960196390580157610023374638693522283858014349571781255814458629300424
79404065736859862007914604590255413929950088044710384758990326548097338
16694050008545272371357139490246382030866854180283831752766806427848956
10057558599917189667864491540635700144971942498789208597312542755675145
75206399118150736397483102490793841725653421894276769116598153430084637
08776951029541513655173467505401523970604257174600108996844049884598547
79779050316325684891565572310064997264987214808001817703577015029830088
79487243887718884416833034708723239505377642232944095773219137582371673
92470421672300225688313577923039468890066246618253265849072440676702493
95796972174674855629981831496656117439976804820941662574638796603051712
74925119226367615337524381656217330771650129520988754856467131862602387
61996433486796151440832890206108283318089122132585368285646991600795210
51669604516954306142123057430068772174071554732179575770175959676405638
12729153867513698712395570542350999228605975469962186195531354132139126
43667690046542999681168055073786677066598802706297250200188284588614534
43687714553613044144656133690928627482769819468364805509529686817587148
59972973082332924094777085275279923304892719633314751563311192746150389
21929061678060790138345113706630068437626719988551514368126613731991210
32354697867564212106248990055535640229243458312642310383634167817199083
54140411717740185950606674198348143345444247191436828225654380047860390
57592241707180267064687545421162695874679539854078446465414038175114996
52736211235408801669902801490332251394608326681709307138688265499773742
86127789417784752681328371818759103642140881783220739808059714203285309
72144304184545918300283340870578313828497328376128618292713674516189736
62072373961327909449840141544083040744053930675407671261825475971308434
70311389815695365971788564022750674237400323621850094765267521941901241
38747827988342647087361681248538444401277252105007227931585309627912113
11601677720779525726138002406844218854535371213419022363796840123852552
88607189967725694227433323948595075570839061877450159652184414998155476
10754800805419231843694819173263143060354839979078330726763672909098077
28273558543480322600674725370977854645677611818073674243673917698637580
72145859791485033700592994963793369100283444558089838054017635403737133
01931129308095828761210738037480066026976784288835826573748655678586882
20151430462496559957603797686853181923658064691995840718454936069221697
76137542662239658644989770921478134709127917460871630220821981434654245
06573126268308957903101289336078864410723018480540037313601421622915914
69920198841482900144143128009031021078333050902384357267794161772468734
11503598700003151092815700331081727415624680432977205070450456683898626
30170298930114536447741685673251233037647788174903605257260552068437061
61165397551325413693038677832672082273236642492064323630892687688266509
39691861683271739757479552993242406186992420363781929485368098035256331
09244821526927621911625914588639367703465348036788712613336711696822645
09149970554485212597518700847200256746587524039320610459030700394382520
19383102480929019684602472171298321628237994627125366359971898374425099
12067368838373829965389203066284307454755907423534527402921160609134632
76847495220460104095756073481551016772031875800892244947529220310938416
61588823584993931745149914395557357641584185479831702428523965451087525
42546477729459523036094641654199779794713680634491599877240917644313737
11785422107405721211668686921532404900803842059211926228754408982614789
08123698956367080804687628524499897440855677969456909042340530355943524
64075167787395311392869861434722757214494689189609329437547674123490779
27543383494123230600787676100899491561269340389211483702171933876178233
70358925817112869563450001367619897145400986643461922197676975930010555
22519891300212302178083193433088044659295455216591185593920257978112295
20653573629144784049464745650031154980720565803606673808895727464643754
28055819322299305089287806874537401327100274428317925355003451536693172
11208822760394280978864572730697997128564957693435400403072844058174664
83766584980399589642433701834541517202853378109041131244624329033539642
96651109482836884580127588701293156099225044518125460113274986014470437
75731388100131927612467611661483352893555750310601844978899437827461385
46517082416131676814639118700008128451443414067399854300727723037581116
13511094355614896323929750846383152930263582535361784837558519666949972
25193551595380720783861514213028445005179523976096843319829259892162322
35823963902625488568558754581983715590084478600867459457091181287932282
22051767509371866110013193625845223493949829511199280837860523506412769
33754813060959426446342507760114733420913912854162818317226214378306296
24081493919971875281063673488766784816023427432300271581924041876865458
26519361990687336892886715133840245486110982482004482721799496658712257
17442904491678119482416563156030347383331766512121805278079595822029833
06119451640194133155503796629802153576807311245305859159697099739880557
43550083279071844959752353594644354789680372126344509423070253995102864
45823745467776101355691621230975228615205321399874567303412767650336963
66823066655520515624911325289261558638685031008491809205076806582659152
76163719928694258350604859732273949286080260640627521341007801815105623
78792621203942478183343943387720639580111580908419079432019517823574019
05465959902896177117761952703540511937272297222484420804400987503694112
77686593022133010625031862085145076421052980508837197986052557750303949
60615844283884686613751096844156730983807939434957001302926517795712062
55558519513135740298975892834755253344098589114006944493084328740050155
54332587793895080241128538758725945136400838324944471346436826148195406
00411484587023407292669774063132587863479066769826618150125611769227571
52912491648217023728844163576009968511009394114446776281860070722785223
14941048564396255796808221289935799262208553889221164765220850367706476
49149613378935376153739156917782223774483761412025334262250800730051347
34227714273331063459718032402442269504580905393266891036193819988388440
36231795282435495362489670734155948067688515321073064476077859628627852
28365724456430644909627751717265695423839294195840952725328165957253453
14283896298940058865394868241171139296273569389734829358546502786894370
14798383826002058208853517073216288725214522205265969614962147884840129
00450773725242460507433966081818296029601919631412499853842201769511036
13805617010163577435425311486693699941309409083682200719364351119785927
82493491477052187226546109199597269439152400467901173602521030051886080
33708484011481024635128826398617008180488838075020352144834874084915471
87144788578095745154995050050707894288428884100278777774559811323199406
24176532148686316581736774410084063436959989519288310869124517866342559
35345824258941139051646944037756266582157784593682990967975454835051047
36337708391510338546396027534864016352046338843423467149356414291608568
46724874244782055113759168236472297793612971080302530934478115527737540
45896899035480805830938126732359356309854656437620938537105280834460718
90760033887816180198532737594985669167047034484383635034163683252664032
24174519476678140428319327482851882140344319384445475456765253419659194
33213258543227007075903856523966822717130000918912205084518526151462793
77175975288529786379317112125295294433237579100729090017035587637986124
80281463093944391916950129336315045285163539312868586427437296109446101
23560487743986329961189975596599660874904927116768526867533599129758320
90895532964095236401160600784950053778927837501473441221237779077271341
46647404489837589487675423294546899354220341669961366698976529978580795
89905586405038850708313733307683976688246368099235521972724183173512764
61891123804858831155694778881017597089776821496443403179244430851703036
92214137621194388641989508360339306459037361842937028710758321966607546
11376107636254392861431624289075402108223362001230938473731222037426903
38385799286785729394341682870537633740919381846322611317409342781179188
91642447513543478446040549455379834556163353815868441692054518698919434
17538666390033575676560326436376790672162662033087842554515720811724638
12515126698466858872090131448616325604610195133718145852499881766299251
42145014710206193190373671380347663431029705222414785030188275106347446
24125870793733908509575772431673506688509420876153616444044375586016062
58370913005741620652736709418886679645705507447247141370019681652159543
80698515999483361357521322106131884771926641942395351412233546746461491
74301347586603733817653260455740292547227936028892618938589969565687678
30171868739887638876259727439760628132634466476794136797261849333950746
65820441677989806604203937116666336696282569349097348391155869004856032
51221924153426852236931603676549104770273352154014316833887296840544329
69676840360731824353362248654338235981235441675146083407811666618587817
33980624199254577853462678039039937557802759942957205281043775666979396
83810934111895947576622019121753509363898546528307869237066251232368439
02355876362283246571611837140788076611621795178879728018415720196390844
00269037450381192797170314489871815031319992111563908303017288012610642
06200535924027827739391802639171772013612598477693398064706376302260888
53599375950790887890817918021957680333819686051204871076108748984115687
40159953020639098138993261095538868264084012160831040525974539251576403
73288908673694836640473462270856004089161078222194340517979455015534768
29668553200975019055814199145911241815010622556274112315713773586971943
74130822027383843815940638571387913337592362330440453487233047240668784
13333304789899525522146884797381356808399564453300522255132015526776889
54127703292786708274900411720766631127836381523435476816631211890868649
91380236281775275946061211813342054791801619220346912760381900528012343
97359827046149981451132461819565852823204465827008206493468025155651127
28220838115631922565099452012226666032260593962470197076685803962869755
51115189973049085051758765306785758000660424066894170620303846785860257
37063435259958688508867965400446518779020894293515321731675011373803146
60346424294890763222281337632999196413365020286272892680875600366137706
07463575515079087982099722660130472907825746908175451952405573791313113
17061732319159867397158837310816891696865770415069551294765238613481576
69675803647620052890602227445317443054984028630488508695577615286503260
80941160688570698894762046478500884303973107412774191961697450517110329
08281520127388866342263149214709022001694063650481204703601673860229067
16298164111982022686079613247395500575675645682047546190404230110623713
67395995678940884705976859514505017241517746017351430990972615509378334
72000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000



января 3, 2007 в 2:42 pm
в принципе, не показатель, ибо быстрее, чем на асме не будет. Попытался на пых-пыхе посчитать - тоже быстро, правда ограничение на bcmath функции не позволили вычислить больше 1493!
января 3, 2007 в 3:34 pm
где в реальном мире это применить?
января 3, 2007 в 4:18 pm
Почитал немного про ерланг. В реальном мире - например при паралельных вычислениях. Ерланг, сука, умный, может сам разбросать функции по процессорам, дабы не утруждать программиста рутинной работой. Ерланг, сука, функциональный язык с будущим
января 3, 2007 в 4:28 pm
2Rayan: почитай статью, много где используется, один из немногих академических языков, который используется в коммерческих проектах
января 3, 2007 в 4:29 pm
2GLad: напиши на асме, и что бы время выполнения было меньше секунды -- Саня, пора уходить от стереотипов Салапатова
января 3, 2007 в 6:29 pm
Очень перспективный язык, как и функциональный подход в целом. Для написания веб-серверов подходит идеально, бизнес-логики, серверов приложений, вобщем достойная замена .NET и JEE
января 3, 2007 в 6:48 pm
компилятор на 20-ти срочках кода на lisp
http://programming.reddit.com/info/jnm0/comments
января 5, 2007 в 10:47 pm
Действительно интересный язык. Особенно тем, что уж очень похож на Prolog, а значит и переход на него безболезненный. Но... у него есть огромный недостаток, который повторяет недостаток Явы - принципиально возможна лишь байт-компиляция. Следовательно о нормальном распространении ПО (если это не embedded и если ErlangVM не станет такой же популярной как JavaVM).
Для тех, кто хочет использовать функциональное программирование в своих реальных проектах рекомендую GHC (одна из реализаций Haskell).
января 6, 2007 в 2:39 am
это не недостаток. У языка свои преимущества, и своя область применения. На чистом ерланге писать софт изврат, имхо.
января 10, 2007 в 4:00 pm
Странно, но сан считает компиляцию в байт-код ПРЕИМУЩЕСТВОМ Ява. И вообще общая тенденция рынка имхо именно в сторону виртуальных машин.
января 10, 2007 в 10:08 pm
"Но самое поразительное то, что в Erlang вообще нет никаких ограничений ни на длину целых чисел, ни на глубину рекурсивных функций!"
Может я ваще отстал от жизни, но как можно реализовать рекурсию без стека? (Кроме, конечно, совсем тривиальных вариантов вроде факториала)
Слышал много хороших отзывов о функциональных языках. Сам к сожалению не пробовал, следовательно не могу спорить о "вкусе устриц", да и не буду. Интересна точка зрения автора статьи.
Теперь мое скромное мнение о будущем ЯП. Я разделяю мнение Раскина, что в первую очередь ЯП должен быть человекоориентированным (а не потому, что так проще реализовать). Для меня человекоориентированность - это:
1. Минимальное количество левых значков: запятых и всевозможных скобочек.
(Согласитесь современные ЯП С++, Ява, ПХП по этому критерию обходят функциональные. Думаю, поэтому они и выиграли. На них удобнее программировать)
2. Минимальное количество ключевых. (в идеале 0, ну или хотя бы 1, как в Self)
3. Возможность назвать один и тот же объект разными словами, как мы этоделаем в естественном языке.
(в общем должен быть очень похож на естественный язык, например Русский)
Имхо, будушие все-таки за ОО-парадигмой. Но ОО не, как Ява, С++, До диез, а ближе к Ruby и SmallTalk. И очень близко к функциональным ЯП. Например, многие мне не поверят, но использовать перемменную больше одного раза (как функциональных), в ООП - антипатерн. Еще антипатенрны - if, for, switch, null. Реально ли их исключить из Java, PHP, C#, C++? Имхо нет. А вот из Ruby похоже можно. SmallTalk к сожалению не пробовал.
января 13, 2007 в 8:20 pm
>Странно, но сан считает компиляцию в байт-код
>ПРЕИМУЩЕСТВОМ Ява.
А майкрософт считает Windows САМОЙ БЕЗОПАСНОЙ серверной ОС :)))
Руслан, не все то правда, что маркетинговый ход.
>Может я ваще отстал от жизни, но как можно реализовать
>рекурсию без стека?
Используется софтварный динамический стек.
января 13, 2007 в 10:07 pm
>>Странно, но сан считает компиляцию в байт-код
))
>>ПРЕИМУЩЕСТВОМ Ява.
>А майкрософт считает Windows САМОЙ БЕЗОПАСНОЙ серверной >ОС
>Руслан, не все то правда, что маркетинговый ход.
Сан, и не только он это обосновывает. Многие приимущества(переносимость, секьюрити, передача кода по сети и т.п.) Ява являються следствием компиляции в байткод. Я думал, что динамически стек уже везде используется и давно не считается чем-то новым, крутым и революционным.
января 29, 2007 в 6:40 pm
Чес говоря, еще не встречал ни одного языка, к которому не нужно костылей
- вопрос, конечно, в нужде и в экономической целесообразности. Я бы, чесно говоря, желал увидеть универсальный язык - "все в одном" - и с движком логического программирования, и функционалным, структурным, ООП подходами... - реально же сейчас нет ни одного языка, который без дополнительных средств на уровне языковой семантики позволял бы это. 
января 30, 2007 в 2:52 pm
Каждый язык имеет свое предназначение. Взять хотя бы SQL, писать на нем запросы достаточно удобно. Причем ни Ява, ни ПХП, ни Си/Си++ его используют. Так же хмл и хтмл. Скорее всего будет просто какой-то универсальный синтаксис, который позволит встраивать в себя различные вспомогательные языки. Думаю гибридный язык в результате будет достаточно сложно применить к чему-то конкретному.
февраля 2, 2007 в 12:57 pm
Ну вот мы с тобой общаемся, кажется, на Русском.. - человеческий язык, - применим ко всему, как видишь, причем довольно просто. Только компьютерной реализации нет
- пусть это сложно, но я думаю, очень даже реализуемо в некотором приближении, - пусть даже в варианте транслятора сверхвысокоуровневых семантических конструкций в реальный код современных языков, скажем C++, Java тот же SQL например.
Считаю, что !современный! язык должен умещать в себе технологии взаимодействия с современными IT системами, и если в нем на !языковом! уровне чего-то нет - значит это фиговый язык.
ps. Повторюсь, это все мое ИМХО.
февраля 2, 2007 в 2:18 pm
Тут вот какая проблема, чем больше на языковом уровне вещей поддерживаеться, тем сложнее язык, сложнее компилятор (читай дороже). Больше ентропия, больше багов. Язык должен быть максимально простым, но таким, что б на нем можно было разрабатывать. Простой язык = простой компилятор, меньше ошибок. (дешевле) В общем я где-то уже об этом писал.)