В принципе глава неплохо демонстрирует мощь языка. Многие вещи который встраивают в другие языки (например go) здесь
реализованы в стандартной библиотеке, мне особенно понравился "паттерн матчинг" :
T>А как этот receive работает? Что тут не встроено?
Выбирает сообщения из очереди потока.
Тут ничего ни встроено receive самая обычная шаблонная функция которая принимает переменное число аргументов.
Каждый аргумент это делегат или лямбда, receive смотрит в очередь и если там есть данные нужного типа вызывает
соответствующую лямбду.
Я посмотрел в исходники concurrency.d вся реализация несколько десятков строк, в С++ например сделать это
так просто практически нереально.
T>>А как этот receive работает? Что тут не встроено?
FR>Выбирает сообщения из очереди потока. FR>Тут ничего ни встроено receive самая обычная шаблонная функция которая принимает переменное число аргументов. FR>Каждый аргумент это делегат или лямбда, receive смотрит в очередь и если там есть данные нужного типа вызывает FR>соответствующую лямбду. FR>Я посмотрел в исходники concurrency.d вся реализация несколько десятков строк, в С++ например сделать это FR>так просто практически нереально.
То есть запись
(long x) { writeln(x); }
это лямбда \x -> writeln x или lambda x: writeln(x) ?
Здравствуйте, FR, Вы писали:
FR>Книга Александреску "The D Programming Language" уже около месяца как продается в бумажном виде
...и всё равно в сети нет PDF версии. С таким началом D можно уже закапывать мелкими совками.
Отсутствие вменяемой документации сильно тормозит популяризацию этого чудо-языка.
Если у кого будет электронный вариант, киньте ссылочкой, плиз?
Здравствуйте, matumba, Вы писали:
FR>>Книга Александреску "The D Programming Language" уже около месяца как продается в бумажном виде M>...и всё равно в сети нет PDF версии. С таким началом D можно уже закапывать мелкими совками. M>Отсутствие вменяемой документации сильно тормозит популяризацию этого чудо-языка. M>Если у кого будет электронный вариант, киньте ссылочкой, плиз?
Нету. Как только появится — на торрентах сразу
И "Elements of programming" там же рядом продается
Были бы они в электронном виде, я бы обе эти книги купил.
Здравствуйте, x-code, Вы писали:
XC>Здравствуйте, matumba, Вы писали:
FR>>>Книга Александреску "The D Programming Language" уже около месяца как продается в бумажном виде M>>...и всё равно в сети нет PDF версии. С таким началом D можно уже закапывать мелкими совками. M>>Отсутствие вменяемой документации сильно тормозит популяризацию этого чудо-языка. M>>Если у кого будет электронный вариант, киньте ссылочкой, плиз?
Вот вроде. здесь
В каком-то извращенном виде, скачать нельзя (по крайней мере я не вижу как можно), но читать вроде можно.
M>...и всё равно в сети нет PDF версии. С таким началом D можно уже закапывать мелкими совками.
Ну если честно большинство поклонников его уже давно закопали из-за долгостроя.
Я пока все еще надеюсь, жалко очень хороший язык никак ни может народится.
Вот последний http://www.digitalmars.com/d/2.0/changelog.html в котором одни багфиксы как бы
подтверждает надежду.
M>Отсутствие вменяемой документации сильно тормозит популяризацию этого чудо-языка.
В ссылке выше все объясняется.
А кратко это обработчик сообщений потока, в си это могло бы выглядеть как большой switch, здесь
сделано по подобию паттерн матчинга в функциональных языках.
Издательство "Символ-плюс" хочет перевести-таки книгу по D. Только пока не знает какую — "Learn Tango with D" или "D programming language". Большая просьба всех неравнодушных высказать свое мнение в этой ветке: http://symbol.ru/forum/viewtopic.php?f=4&t=363
Здравствуйте, FR, Вы писали:
FR>Я посмотрел в исходники concurrency.d вся реализация несколько десятков строк, в С++ например сделать это FR>так просто практически нереально.
Насчёт "практически" не знаю, а насчёт "теоретически" — легко! Даже без 0x.
Берём boost::bind — и напильником его, напильником!
Щас демку напишу...
Здравствуйте, Кодт, Вы писали:
К>...и напильником его, напильником!
Это как в том анекдоте когда амениканские спиёны стащили чертежи нашей секретной подлодки, но как не бились собирали паровоз, а потом им наш рабочий подсказал, что нужно было в углу читать внимательнее. А в углу было написано "до готовности довести напильником". Да?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, FR, Вы писали:
M>>Отсутствие вменяемой документации сильно тормозит популяризацию этого чудо-языка.
FR>По моему тут http://www.digitalmars.com/d/2.0/index.html вполне вменяемо.
Не бери в голову. Все кому в лом/не охота/в падлу осваивать и учит что-то новое сразу кивают на отсутствие документации. Это стало стандартной отмазкой.
У Ди есть только два глобальных недостатка — за ним не стоит серьезных денег, и его создание действительно чрезмерно затянулось для столь простого языка.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
К>>...и напильником его, напильником!
VD>Это как в том анекдоте когда амениканские спиёны стащили чертежи нашей секретной подлодки, но как не бились собирали паровоз, а потом им наш рабочий подсказал, что нужно было в углу читать внимательнее. А в углу было написано "до готовности довести напильником". Да?
Не совсем.
Если коротко, то план такой.
Когда получатели известны прямо здесь и сейчас, достаточно any_cast'а
упаковка-распаковка аргументов в кортежи есть в Boost.Fusion, или руками написать — там работы меньше часа и меньше одного экрана.
3) осталось сбиндить нужные нам обработчики с этими обёртками,
Andrei: For now, The D Programming Language is the closest thing we have to a specification, and we're really careful to keep the language in sync with the book. Yet of course D is evolving, and hopefully will continue to evolve just like any programming language that people use. However, Walter and I had decided a long time ago that the D book will mark the end of a Cambrian period in the development of the language, which started as D1 and then off-sprung the D2 branch. From here on, we're talking about backwardly compatible changes.
То есть книга практически принимается за спецификацию языка и релиз не за горами (надеюсь ).