(on lisp)
62 отговора
1802 прегледа
(on lisp)
Това е нещо като събрани на едно няколко отделни постинга, за да не хабя място, щото едва ли много хора ще се интересуват...
Ето храна за коментари (за малко да кажа "размисъл", ама не вярвам в тези неща :))
1. Интересно ми е колко хора тук са фенове на Lisp (или Scheme, или нещо подобно). Имате ли някаква информация за български фирми, които използват Common Lisp? Кво пишат? Как се работи там (кви пари дават (или това е прекалено?)). Драснете по някой ред.
2. Сега излиза едно книжле - Practical Common Lisp ([линк]).
Разпечатах си нещо от него: ([линк]) и останах много приятно изненадан! Само на 26 реда философията на писане на Common Lisp! Признавам си - много нов съм в тая работа, но мнението ми е, че никъде досега не е показвано толкова ясно, с толкова малко текст къде е ключа за бараката: Използване на CL като метаезик за строене на специфичнен за проблема език с чиято помощ кратко и ясно се дава решението. Демонстрация на силата на макросите (за незапознатите - това са програми които се изпълняват по време на компилация/интерпретация и дават като резултат S-expressions, които на свой ред се компилират/интерпретират. За нещо такова Андрей Александреску има да пише счупени скобки от тук до хоризонта!) Мисля, че книгата ще стане класика :)
3. Във връзка с 2: От наблюдения на крайно ограничен брой случаи съм останал с впечатлението, че във ФМИ нещо куца в преподаването на Lisp (не искам да обиждам колегите - моля простете ако съм ви засегнал). Това което наблюдавам е че хората остават с впечатлението че става съпрос за:
Език, който има излишно много скоби, няма оператори за цикли (и за това всички цикли се правят крайно неефективно с рекурсия) и общо взето в Лисп софт се пише като се научим да си превеждаме любимите си конструкции от C.
Смятам че тази мъгла трябва някак да се разсее и поради това поствам всичко това. Целта е да разбера колко от хората тук биха се интересували от проблема, пък ако сме достатъчно може и да стане по-интересно :)
Where the hell do you want to go today?
Ето храна за коментари (за малко да кажа "размисъл", ама не вярвам в тези неща :))
1. Интересно ми е колко хора тук са фенове на Lisp (или Scheme, или нещо подобно). Имате ли някаква информация за български фирми, които използват Common Lisp? Кво пишат? Как се работи там (кви пари дават (или това е прекалено?)). Драснете по някой ред.
2. Сега излиза едно книжле - Practical Common Lisp ([линк]).
Разпечатах си нещо от него: ([линк]) и останах много приятно изненадан! Само на 26 реда философията на писане на Common Lisp! Признавам си - много нов съм в тая работа, но мнението ми е, че никъде досега не е показвано толкова ясно, с толкова малко текст къде е ключа за бараката: Използване на CL като метаезик за строене на специфичнен за проблема език с чиято помощ кратко и ясно се дава решението. Демонстрация на силата на макросите (за незапознатите - това са програми които се изпълняват по време на компилация/интерпретация и дават като резултат S-expressions, които на свой ред се компилират/интерпретират. За нещо такова Андрей Александреску има да пише счупени скобки от тук до хоризонта!) Мисля, че книгата ще стане класика :)
3. Във връзка с 2: От наблюдения на крайно ограничен брой случаи съм останал с впечатлението, че във ФМИ нещо куца в преподаването на Lisp (не искам да обиждам колегите - моля простете ако съм ви засегнал). Това което наблюдавам е че хората остават с впечатлението че става съпрос за:
Език, който има излишно много скоби, няма оператори за цикли (и за това всички цикли се правят крайно неефективно с рекурсия) и общо взето в Лисп софт се пише като се научим да си превеждаме любимите си конструкции от C.
Смятам че тази мъгла трябва някак да се разсее и поради това поствам всичко това. Целта е да разбера колко от хората тук биха се интересували от проблема, пък ако сме достатъчно може и да стане по-интересно :)
Where the hell do you want to go today?
Re: (on lisp)
Чувал съм да казват за JavaScript, че е 'Lisp in C clothes'. Ако е вярно 'начи съм Lisp фен :))
Любопитно
Не разбирам от JS, ама като имам предвид колко е кофти синтаксиса на C-то си мисля че едва ли има толкова мощни макроси.
Има ли closures?
Where the hell do you want to go today?
Има ли closures?
Where the hell do you want to go today?
Re: (on lisp)
planet.lisp.org
Ако човек не е с промит мозък (ЖАВА/.НЕТ и други още по зле) ще се изкефи много на Лисп-а, даже и да не го ползва за нищо.
Просто много мощен.
Ако човек не е с промит мозък (ЖАВА/.НЕТ и други още по зле) ще се изкефи много на Лисп-а, даже и да не го ползва за нищо.
Просто много мощен.
planet
Знам за planet lisp :) Следя си го през [линк] :)
BTW: Днес (както и друг път де) има нещо за което не се бях замислял:
"Brian Mastenbrook — The Hostile Newbie Thought Process". Има много истина в това :)
Where the hell do you want to go today?
BTW: Днес (както и друг път де) има нещо за което не се бях замислял:
"Brian Mastenbrook — The Hostile Newbie Thought Process". Има много истина в това :)
Where the hell do you want to go today?
Re: Любопитно
Да, добро е за четене. Определено и аз страдах от разните погрешни представи изброени там. Но сега съм излекуван :) Вече няма да гледам с предубеждение на JS :)
PS: Все пак липсват макросите :)
Where the hell do you want to go today?
PS: Все пак липсват макросите :)
Where the hell do you want to go today?
Re: Любопитно
Незнам какво е eval в JS но мога да предположа. Според мен не са екв.
Мкроса е просто програмка (функция), която поражда или манипулира s-expression, т.е. "мета-програма", която генерира текст, който замества тялото на макроса. Аз това нещо в JS си го представям като извикване на функция която връща стринг и върху този стринг правим евал. Обаче проблема не е ли в това че по този начин ограничаваме действитео на "макроса" само до текущия scope (който е тяло на функция)? Така да се каже - нямаме макроекспанжън докато не изпълним код. :)
Сега се сещам за още ценности:
JS има ли връщане на няколко рeзултата от функция? (valies/multiple-value-bind)
(това много дразни когато става въпрос за Ц-подобни езици - кои параметри са In, кои Out и кои InOut - понеже неможем да върнем примерно 3 резултата, слагаме двата като параметри (като реферънс), но стойноста на единия от тях при извикване на функцията се използва. Много объркано.)
И за да намесим и Ским в работата - JS има ли continuations? (first class!) :)
Where the hell do you want to go today?
Мкроса е просто програмка (функция), която поражда или манипулира s-expression, т.е. "мета-програма", която генерира текст, който замества тялото на макроса. Аз това нещо в JS си го представям като извикване на функция която връща стринг и върху този стринг правим евал. Обаче проблема не е ли в това че по този начин ограничаваме действитео на "макроса" само до текущия scope (който е тяло на функция)? Така да се каже - нямаме макроекспанжън докато не изпълним код. :)
Сега се сещам за още ценности:
JS има ли връщане на няколко рeзултата от функция? (valies/multiple-value-bind)
(това много дразни когато става въпрос за Ц-подобни езици - кои параметри са In, кои Out и кои InOut - понеже неможем да върнем примерно 3 резултата, слагаме двата като параметри (като реферънс), но стойноста на единия от тях при извикване на функцията се използва. Много объркано.)
И за да намесим и Ским в работата - JS има ли continuations? (first class!) :)
Where the hell do you want to go today?
Re: (on lisp)
On Lisp е заглавие на книга от Paul Graham, която нищи в детайли този стил на програмиране - разширяване на езика с domain specific extensions чрез макроси. Книжката я има онлайн, и вече е класика за някои (като мен). Practical Common Lisp дава ли нещо повече?
Единствената уникална характеристика, останала на Лисп, са именно макросите (прав си, не се преподават във ФМИ, но и почти никъде другаде). Другите неща вече ги има и в други езици.
Донякъде има имитации и на макросите. Много вярно си усетил, че Александреску прави същото, доколкото е възможно, в синтаксиса на С++ с шаблоните. Нещата са узрели това да започне да се прави и на Java (особено след 1.5), макар и по доста по-различен начин.
Единствената уникална характеристика, останала на Лисп, са именно макросите (прав си, не се преподават във ФМИ, но и почти никъде другаде). Другите неща вече ги има и в други езици.
Донякъде има имитации и на макросите. Много вярно си усетил, че Александреску прави същото, доколкото е възможно, в синтаксиса на С++ с шаблоните. Нещата са узрели това да започне да се прави и на Java (особено след 1.5), макар и по доста по-различен начин.
Re: (on lisp)
Да, от книжката на Греъм си харесах заглавието :)
Без да съм прочел (все още) Practical Common Lisp, мисля че дава по-лек (lightweight) подход към същото нещо. Чете се по-лесно, някак.
И сега да нагазя в дълбокото (където веднага ще се удавя :))
Кво мислите за CLOS? Нямам си никва представа от това, но вярвам на слуховете, че е една от най-мощните ОО системи :)
Бълбук!
Where the hell do you want to go today?
Без да съм прочел (все още) Practical Common Lisp, мисля че дава по-лек (lightweight) подход към същото нещо. Чете се по-лесно, някак.
И сега да нагазя в дълбокото (където веднага ще се удавя :))
Кво мислите за CLOS? Нямам си никва представа от това, но вярвам на слуховете, че е една от най-мощните ОО системи :)
Бълбук!
Where the hell do you want to go today?
"Golden Common Lisp"
Преди време си бях намерил една книжка (уж да я чета, ама нещо не остана време
) на тази реализация: Golden Common Lisp (линк).
Е на това му викам хубаво име на език за програмиране!
Е на това му викам хубаво име на език за програмиране!
Re: "Golden Common Lisp"
Абе този сайт от кога не е ъпдейтван? Гледам някакви минимални изисквания от рода на:
*
386, 486, or Pentium PC
*
8MB RAM (16MB recommended)
*
16 MB hard disk space
*
1.44 MB 3.5" floppy disk drive
*
VGA card and monitor
*
Microsoft Windows 3.x with WIN32s, Windows NT, Windows 95 or OS/2 with WIN32s
Имаше и оше по-зле:
DOS, 640K ram ....
:)
Сигурно са фалирали отдавна
Where the hell do you want to go today?
*
386, 486, or Pentium PC
*
8MB RAM (16MB recommended)
*
16 MB hard disk space
*
1.44 MB 3.5" floppy disk drive
*
VGA card and monitor
*
Microsoft Windows 3.x with WIN32s, Windows NT, Windows 95 or OS/2 with WIN32s
Имаше и оше по-зле:
DOS, 640K ram ....
:)
Сигурно са фалирали отдавна
Where the hell do you want to go today?
Re: "Golden Common Lisp"
Знаех си, че ще се хванеш! Добре си е този сайт - просто те ти пускат едно ActiveX-че и то ти дръпва текущата конфигурация и показва конфигурация с едно поколение по-стара от твоята, за да не се уплашиш, че няма да ти се стартира. 

Ауууу
Мале, че те могат и диска ми да форматират :)
Ама "едно поколение по стара"? от Pentium 4 2.6GHz ? Хм. ше я видя аз тази работа...
Where the hell do you want to go today?
Ама "едно поколение по стара"? от Pentium 4 2.6GHz ? Хм. ше я видя аз тази работа...
Where the hell do you want to go today?
Може, сигурно е
някакъв бъг в AciveX-чето и при мен излиза М наместо G.
А това GHz откъде идва съкратено? От Giliadi Herza?
А това GHz откъде идва съкратено? От Giliadi Herza?
Re: (on lisp)
Мен пък ми е интересно дали хората използват Python? Мен много ме кефи този език. Той (донякъде) прилича на Lisp с по-човешки синтаксис.
Виж тук: [линк]
Виж тук: [линк]
Re: (on lisp)
Не е много вярно. Това че функцията е обект е разбира се чудесно, но JS е много много далече от ЛИСП.
There are 10 types of people in this world: those who understand binary and those who don't.
There are 10 types of people in this world: those who understand binary and those who don't.