Re[6]: Не пора ли нам перейти на D
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.07 22:58
Оценка:
Здравствуйте, 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>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.