-
> А на каком языке написан С++ ?
На английском! :)
-
> Alkid © (05.05.08 15:13) [38] > Кстати, а разе в CL или Scheme есть паттерн-матчинг?
А я не говорил про Лисп, я говорил про функциональный подход вообще. А конкретно Лисп я знаю очень слабо, обзорно, на уровне того, что такое CAR и CDR :)))
-
> ничего не читал, ничего не писал и не собираюсь. Но заинтересовала > эта тема.
Гугль в помощь. Советую сайт paulgraham.com, там, помимо прочего, есть интересные заметки о Лисп. Вообще, изучать альтернативные языки полезно, даже если не собираешься их применять на практике. Сильно способствует просветлению. Так же советую Пролог :)
> вы хотите сказать, что на дельфи этого сделать невозможно? > не понимаю.
В рамках такой общности, как в Лисп - нет. И дело тут не в процессоре а в том, наборе абстракций и ограничений, которые представляют собой язык Delphi.
Если вкратце, то функция mapcar получает на вход два параметра: унарную функцию и список. После чего она применяет функцию к каждому элементу списка и формирует список, содержащий результаты применения, который и возвращает. В языке дельфи, с его системой типов, написать обобщённую функцию такого характера не представляется возможным.
-
> А я не говорил про Лисп, я говорил про функциональный подход > вообще. А конкретно Лисп я знаю очень слабо, обзорно, на > уровне того, что такое CAR и CDR :)))
А, понятно. Меня, кстати, сейчас логическая парадигма интересует, как обобщение функциональной.
-
> Пробегал2... (05.05.2008 13:54:29) [29]
А ты не путай маркетинговые потуги с википедией, но даже там есть пункт "т. е. в режиме реального времени" OnLine слово волшебное.им к доктору.
-
> Игорь Шевченко (05.05.2008 14:08:33) [33]
Кстати учитывая последнии шаги Борланда я удивлен, а почему нет, а вот IncDay есть.
-
Пробегал2... (05.05.08 15:13) [39]
Ты эта...прежде чем спорить, про предмет спора почитай малость. Чтобы не оказаться в глупой ситуации.
-
Anatoly Podgoretsky © (05.05.08 15:28) [45]
IncDay больше востребован
-
> Alkid © (05.05.08 15:21) [42] > > > ничего не читал, ничего не писал и не собираюсь. Но заинтересовала > > > эта тема. > > Гугль в помощь. > Советую сайт paulgraham.com, там, помимо прочего, есть интересные > заметки о Лисп. > Вообще, изучать альтернативные языки полезно, даже если > не собираешься их применять на практике. Сильно способствует > просветлению. > Так же советую Пролог :) > > > > вы хотите сказать, что на дельфи этого сделать невозможно? > > > не понимаю. > > В рамках такой общности, как в Лисп - нет. И дело тут не > в процессоре а в том, наборе абстракций и ограничений, которые > представляют собой язык Delphi. > > Если вкратце, то функция mapcar получает на вход два параметра: > унарную функцию и список. После чего она применяет функцию > к каждому элементу списка и формирует список, содержащий > результаты применения, который и возвращает. В языке дельфи, > с его системой типов, написать обобщённую функцию такого > характера не представляется возможным.
А пытался?
-
> oxffff © (05.05.08 15:36) [48]
написать можно, но нафика? :)
-
> oxffff © (05.05.08 15:36) [48] > А пытался?
Но ведь действительно невозможно. В Delphi придётся задавать тип элементов списка и функции на этапе компиляции, а в Лиспе тиипзация будет динамической, что-то вроде шаблона. А самое главное, что если элементы списка имеют разные типы, но к каждому из них функция, переданная в mapcar, применима, тоже всё будет в порядке - такого в Delphi не написать, даже если были бы generic'и.
-
> Григорьев Антон © (05.05.08 15:46) [50]
> В Delphi придётся задавать тип элементов списка и функции > на этапе компиляции
угу и это будет variant
-
type TXFUNC=function (const a:TvarRec):TvarRec;
function abc(var List:array of const;func:TXFUNC):integer; var i:integer; begin for i:=0 to length(List)-1 do LIST[i]:=func(LIST[i]); end;
function XSample(const a:TvarRec):TvarRec; begin
end;
procedure TForm1.Button1Click(Sender: TObject); var a:array of TVarRec; begin abc(A,XSample); end;
И это не предел. Если хорошо отштудировать систему типов Delphi. То можно динамически добавлять типы. Но об этом позже, если эти аргументы будут востребованы.
ЗЫ. решения есть еще. и не одно.
-
> Григорьев Антон © (05.05.08 15:46) [50]
Нужно лучше знать Delphi. И вопросов будет меньше.
-
> Григорьев Антон © (05.05.08 15:46) [50] > > > oxffff © (05.05.08 15:36) [48] > > А пытался? > > Но ведь действительно невозможно. В Delphi придётся задавать > тип элементов списка и функции на этапе компиляции, а в > Лиспе тиипзация будет динамической, что-то вроде шаблона. > А самое главное, что если элементы списка имеют разные > типы, но к каждому из них функция, переданная в mapcar, > применима, тоже всё будет в порядке - такого в Delphi не > написать, даже если были бы generic'и.
Как у вас с ООП?
-
> Григорьев Антон © (05.05.08 15:46) [50] > > > oxffff © (05.05.08 15:36) [48] > > А пытался? > > Но ведь действительно невозможно. В Delphi придётся задавать > тип элементов списка и функции на этапе компиляции, а в > Лиспе тиипзация будет динамической, что-то вроде шаблона. > А самое главное, что если элементы списка имеют разные > типы, но к каждому из них функция, переданная в mapcar, > применима, тоже всё будет в порядке - такого в Delphi не > написать, даже если были бы generic'и.
Далее по тексту? Читали ли мы TcustomVariant? Это кстати другое решение. Еще есть два мощнейших и простых наследника у него. Но это к вопросу о расширениии языка.
-
> > И это не предел. Если хорошо отштудировать систему типов > Delphi. > То можно динамически добавлять типы. > Но об этом позже, если эти аргументы будут востребованы.
Супер. И как мне стандартную функцию sin(x:double) тут заюзать? :)
-
> Игорь Шевченко (05.05.2008 15:35:47) [47]
Все правильно, более приоритетен, а у Eval пока недостаточный приоритет, иконку, которая там, тоже не сразу сделали.
-
> oxffff ©
ты эта :) не нервничай... подобие реализовать можно, но ограничено... именно так как в лиспе - не выйдет...
-
> Palladin © (05.05.08 15:58) [58]
Я эта не нервничаю. Ежели что. :)
|