Здравствуйте, Disappear, Вы писали:
VD>>3. Есть языки более мощьные и удобные нежели С++ и D, но это уже не поймут ни С++-, ни D-и программисты в следствии все того же парадокса Блаба.
D>С подобным парадокcом неоднократно сталкивался, в том числе и сам
D>Дайте примеры по 3-ему пункту плиз.
Неужели — это до сих пор нужно делать на этом форуме?
Пожалуйста! Их есть у меня (с).
http://rsdn.ru/summary/3766.xml
http://rsdn.ru/article/philosophy/Scala.xmlАвтор(ы): Martin Odersky, Philippe Altherr, Vincent Cremet, Burak Emir, Sebastian Maneth, Stephane Micheloud, Nikolay Mihaylov, Michel Schinz, Erik Stenman, Matthias Zenger, http://scala.epfl.ch
Дата: 22.05.2005
Язык Scala был создан в 2001-2004 гг в лаборатории методов программирования EPFL. Он стал результатом исследований, направленных на разработку более хорошей языковой поддержки компонентного ПО. С помощью Scala мы хотели бы проверить две гипотезы. Во-первых, мы считаем, что язык программирования компонентного ПО должен быть масштабируемым в том смысле, что должна быть возможность с помощью одних и тех же концепций описать как маленькие, так и большие части. Поэтому мы сконцентрировались на механизмах абстракции, композиции и декомпозиции вместо введения большого количества примитивов, которые могут быть полезными только на каком-то одном уровне масштабирования. Во-вторых, мы считаем, что масштабируемая поддержка компонентов может быть предоставлена языком программирования, унифицирующим и обобщающим объектно-ориентированное и функциональное программирование.
Языки чем-то похожие на D, но превосходящие его на голову.
Кстати, ты тут приводил пример факториала времени компиляции. Вот как примерно это будет выглядеть на Nemerle:
macro CompileTimeFactorial(n : uint)
{
def res = Util.Factorial(n);
<[ $(res : ulong) ]>
}
module Util
{
//
Factorial(n : uint) : ulong
{
| 0 | 1 => 1
| _ => n * Factorial(n - 1)
}
}
То есть это просто одинарный код только вызванный в макросе. А в прикладном коде он будет выглядеть как вызов фукнции:
WriteLine(CompileTimeFactorial(10));
и факториалы это просто детские шалости. Макросы это прямая и эффективная реализация метапрограммирования.
... << RSDN@Home 1.2.0 alpha rev. 637>>