Математические операторы
Тип | Описание | Тип данных |
---|---|---|
+ | Сложение (addition) | Integer | Float |
– | Вычитание (substraction) | Integer | Float |
* | Умножение (multiplication) | Integer | Float |
/ | Деление с плавающей запятой (floating point division) | Integer | Float |
div | Деление нацело (integer division) | Integer |
rem | Остаток от деления (integer remainder) | Integer |
Примеры использования математических операторов в консоли erlang:
1> 1 + -1. 0 2> 2/3. 0.6666666666666666 3> 3 div 2. 1 4> 3 rem 2. 1
Атомы (константы)
Атомы это строковые константы типа: red, green, blue или enabled, disabled. Всегда должны начинатся с нижнего регистра (маленькой буквы) и могут включать в себя буквы, цифры, символы “@”, “_”, “.”. Например: testUser, test_user, test.user. В принципе для атомов можно использоват любые символы, если заключать их в одинарные кавычки: ‘Monday’, ‘not ready’, ‘node#1\nnode#2’
Integers (целые)
Определение целых работа с ними классическая:
1> 1. 1 2> 2+3. 5 3> 4-7. -3
Booleans
Здесь тоже все более-менее привычно за исключением того что это не отдельный тип а просто обычный атом-константа. Вот несколько примеров, которые иллюстрируют особенности erlang:
1> 1==1. true 2> 1>2. false 3> a is_boolean(true). true 5> is_boolean(2+3). false
Оператор | Описание |
---|---|
and | Возвращает true если оба аргумента по отдельности вернут true |
andalso | Возвращает false если первый аргумент был false и не проверяет второй аргумент |
or | Возвращает true если любой аргумент был true |
orelse | Возвращает true если первый аргумент был true, без проверки второго элемента |
xor | Возвращает true если один из аргументов true, а другой false |
not | Возвращает true если аргумент был false, и наоборот |
6 comments On Erlang. Операторы. Atoms, Integers, Booleans.
Привет, ты уже решал какие-то реальные задачи на Erlang?
Давно смотрел в его сторону, почитываю то тут то там, и вот решился покодить и интересно было бы взяться за реальную задачу, может не совсем реальную, но приблеженную к реальности.
Привет. До реальных задач дело еще не дошло. Кривая вхождения уж очень крутая. Эта часть про операторы самая простая, все что пойдет дальше, будет выпадать из привычных рамок императивных языков. Ну к слову, такая мелочь – переменных в языке нет совсем. Только константы.
Атомы это не константы. Это почти тоже самое что symbols в ruby.
Мне показалось что это что-то похожее на константы в php или define в C. Я с руби не так чтобы очень знаком, как впрочем и с эрлангом, но в чем разница между атомами и константами?
В общем случае, это неизменяемые строки. Атомы используются вместо чисел для обозначений, для повышения ясности кода. Единственная операция на атомах (она и самая эффективная) это сравнение. Атомы хранятся как ссылки в несколько байт в независимости от написанной длины атома. В отличие от строк (где сравнение происходит символ за символом), атомы сравниваются за один шаг. И константа в php хранит значение в памяти, атом же не имеет значения, он сам по себе обозначение.
Спасибо за разъяснение. Да, я так себе это и представлял, но с точки зрения языка это всеже константы (хотя и устроены они как цепочка байтов, что конечно быстрее в обработке чем посимвольное стравнение строк).
Sliding Sidebar
About Me
Для кого этот блог?
Для тех кого интересуют современные интернет технологи, IT бизнес, стартапы, менеджмент, контроль качества, личная эффективность, мотивация. Здесь я буду писать о том, что в первую очередь будет интересно мне, о проблемах и решениях. О том что пригодилось мне, и возможно будет интересно Вам.
Что заставило меня создать его?
Желание совершенствоваться. Достигать успеха. Находить людей со схожими проблемами и задачами, вместе искать выходы и решения.
Немного о себе.
Мой первый серьезный опыт в IT это работа над desktop приложениями в компании «Эксперт-Софт». У истоков её стояли несколько амбициозных и талантливых молодых людей, с огнем в глазах и желанием работать «как майкрософт». То чем мы там занимались вполне могли бы сегодня назвать «стартапом». Рук было откровенно мало, поэтому приходилось заниматься всем: кодированием на Delphi, написанием скриптов на VBA, дизайном, вёрсткой и поддержкой вебсайта, работой над рекламной полиграфией, проектированием интерфейсов и БД. Работы было много, но запал был велик, команда очень разношерстная, гармонично дополняя друг-друга в решении нетривиальных задач. Благодаря тому что пришлось попробовать многое, постепенно вырисовалось понимание того чем хочется заниматься, и как. Софтверным программированием я был сыт по горло. Массы проблем десктопного софта в вебе просто не было, по определению. Зато был четкий фокус на дизайне, юзабилити, скорости. Поэтому когда пришла пора уходить из «Эксперт-Софт», я без всякого сожаления стал искать работу как разработчик для web. Поскольку городишко у нас не очень большой, выбор был практически предопределен. Так я стал работать в «Оникс-Системз», где и продолжаю работать поныне. За время работы в компании я как разработчик принимал участие в работе над несколькими десятками проектов. Несколько десятков проектов было сделано мною как фрилансером. Самым большим проектом в котором я сыграл роль менеджера, считаю свою семью. Также довольно большой проект мы сейчас поднимаем с командой разработчиков (на данный момент команда состоит из четырех php разработчиков, одного flex кодера и тестировщика). Отсюда, большой интерес к современным практикам и методологиям, разным подходам в управлении командой, повышению эффективности и качества работы. По мере сил, вдохновения и свободного времени, я буду писать об этом.
Если у Вас возникли какие-то вопросы ко мне лично, буду рад если Вы свяжетесь со мной:
e-mail:
skype: denis.sheremetov
Старый сайт, с музычкой и флешом
Прочая онлайновая деятельность: