Pull to refresh
47
0
Валерий @kharvd

Пользователь

Send message
Так в коде на Ruby return, так что else просто не нужен. Вы же не будете писать на C так:

if (bmi <= 18.5)
    return "You're underweight, you emo, you!";
else if (bmi <= 25.0)
    return "You're supposedly normal. Pffft, I bet you're ugly!";
else if (bmi <= 30.0)
    return "You're fat! Lose some weight, fatty!";
else
    return "You're a whale, congratulations!";

Скорее вы напишете так (хотя, это далеко не лучший вариант):

if (bmi <= 18.5)
    return "You're underweight, you emo, you!";

if (bmi <= 25.0)
    return "You're supposedly normal. Pffft, I bet you're ugly!";

if (bmi <= 30.0)
    return "You're fat! Lose some weight, fatty!";

return "You're a whale, congratulations!";

else в этом случае не несет никакой смысловой нагрузки. И так ясно, что после return следующий if выполняться не будет
learnyouahaskell.com/syntax-in-functions#guards-guards

bmiTell :: (RealFloat a) => a -> String  
bmiTell bmi  
    | bmi <= 18.5 = "You're underweight, you emo, you!"  
    | bmi <= 25.0 = "You're supposedly normal. Pffft, I bet you're ugly!"  
    | bmi <= 30.0 = "You're fat! Lose some weight, fatty!"  
    | otherwise   = "You're a whale, congratulations!" 

По-моему, очень похоже. А код на Haskell назвать написанным не в функциональном стиле язык не поворачивается.
Статья не об ООП, а о функциональном стиле программирования на Ruby. То, что GObject на Си реализует объектную модель, это, конечно, хорошо, но к теме данной статьи отношение имеет крайне опосредованное.
Вы о чем конкретно? Причем здесь машина Тьюринга вообще?
Вы же понимаете, что не в Range дело, а в .inject(:+). Для таких простых арифметических операций гораздо приятнее использовать символ, чем неуклюжий блок.
В обратной польской записи еще проще:
5 1 5 + * 2 /
На Ruby можно проще:
(1..5).inject(:+)
У машины Тьюринга может быть задан любой набор символов и состояний.
Только это больше похоже на машину Поста
gcc.gnu.org/projects/cxx0x.html Здесь можно увидеть текущий прогресс. Уже почти все из синтаксических фич готово. Но до полной поддержки еще далеко.
Alias-declarations — расширенный typedef, позволяющий использование шаблонов en.wikipedia.org/wiki/C%2B%2B11#Alias_templates
Это перевод. Можете оставить этот комментарий у автора в блоге по ссылке.
не устраивает != невозможно
Хотите сказать, то же самое никак не сделать в C++?.. Нужен «виртуальный конструктор» — есть всяческие фабрики. События и свойства вполне успешно реализованы в Qt
Квинтэссенция отношения Линуса к C++ заключена в первой же строчке письма. Он, видимо, не осилил ООП («idiotic «object model» crap»). Ну и производительность его не устраивает, якобы.
Ну, Objective C — полноценный язык. А GTK+ — просто библиотека, без всяких расширений.
Это им ненависть Торвальдса к C++ передалась, судя по всему :)

Information

Rating
Does not participate
Location
New York, New York, США
Registered
Activity