1. Особенности работы с переменными и литералами в Perl6
2. Perl6 — Операции над переменными, анонимные блоки
3. Perl6 — Условные операторы, циклы
4. Perl6 — Работа с функциями
5. Perl6 — Классы
6. Perl6 — Ввод-вывод, модули
7. Perl6 — Комментарии, пробельные символы, скобки
Однажды я уже писал статью о функциях и об особенностях их использования (№4). Сейчас я хочу рассмотреть одну из их разновидностей — операторов.
Читать полностью »
Рубрика «функции» - 4
Perl6 — Перегрузка операторов
2013-08-15 в 17:25, admin, рубрики: perl, perl6, операторы, Программирование, функции, метки: perl6, операторы, функцииДежавю — баг или фича?
2013-05-09 в 7:42, admin, рубрики: мозг, память, Песочница, функции, хеш, метки: Мозг, память, функции, хеш Наверняка каждый человек, достигший сознательного возраста, испытывал состояние «дежавю».
До сих пор неизвестно как и почему это происходит, гипотез множество, но это всего лишь гипотезы.
Хочу поделиться своей гипотезой на этот счет, близкой к ИТ тематике.
Читать полностью »
Строим Nested Set дерево без рекурсии
2012-11-25 в 17:47, admin, рубрики: mysql, nested set, sql, Алгоритмы, рекурсия, функции, метки: mysql, nested set, Алгоритмы, рекурсия, функцииДеревья в базах данных можно хранить тремя основными методами: Adjacency List, Matherialized Path & Nested Set. Когда мы хотим переехать с AL на NS, это можно сделать с помощью рекурсии (если БД расово верная). Но что делать в случае MySQL?Читать полностью »
Четыре паттерна вызова функций в JavaScript
2012-10-23 в 12:11, admin, рубрики: javascript, this, объекты, ооп, паттерны, Программирование, функцииЯзык JavaScript был представлен как язык функционального программирования. Причина заключается в том, что функции в JS не просто разделяют логику на операционные блоки, функции являются объектами первого класса, способными создавать другие объекты. Подобная зависимость от функций одновременно является как сильной стороной, так и настоящим проклятием этого языка. Сильная сторона заключается в том, что язык, обладая подобными особенностями, становится легковесным и быстрым (каким JavaScript изначально и видели его создатели). Однако если вы не знаете что делаете — однозначно ждите беды.
Я предлагаю посмотреть на паттерны вызова функций, а точнее на то, как значительно изменяется результат в зависимости от выбранного паттерна. Также мы рассмотрим как ведет себя this
, в зависимости от способа вызова функции.
Итак, существует четыре пути вызова функций:
- Вызов метода — Method Invocation
- Вызов функции — Function Invocation
- Вызов конструктора — Constructor Invocation
- Применить и вызвать — Apply And Call Invocation
Perl6 — Работа с функциями
2012-10-16 в 13:02, admin, рубрики: MAIN, perl, perl6, Программирование, функции, метки: MAIN, perl6, функции 1. Особенности работы с переменными и литералами в Perl6
2. Perl6 — Операции над переменными, анонимные блоки
3. Perl6 — Условные операторы, циклы
Настало время рассмотреть работу с функциями. По этой теме в Perl6 есть несколько изменений относительно пятого, как например именованные параметры, или возможность создания главной функции в скрипте, но начнем по порядку:
«Сложно о простом». Функции-конструкторы — как объекты,(prototype). Объекты,(__proto__). constructor, ={}, как функция-конструктор new Object()
2012-09-07 в 14:19, admin, рубрики: __proto__, constructor, javascript, prototype, Веб-разработка, конструктор, Программирование, функции, метки: __proto__, constructor, javascript, prototype, конструктор, функцииВ прошлый раз мы попытались разобраться со следующими вещами:
- 1. Не смотря на расхожее мнение «всё в JS является объектами» — это не так, мы выяснили, что из 6 доступных программисту типов данных аж 5 является примитивами и лишь один представляет тип объектов.
- 2. Про объекты мы узнали, что это такая структура данных, которая содержит в себе пары «ключ-значение». Значением может быть любой из типов данных (и это будет свойство объекта) или функция (и это будет метод объекта).
- 3. А вот примитивы – это не объекты. Хотя с ними и можно работать как с объектом (и это вызывает заблуждение что примитив – это объект), но…
- 4. Переменные можно объявить как по простому (литерально) (var a = ‘str’), так и через функцию-конструктор (обёртка)(var a = new String(‘str’)). Во втором случае мы получим уже не примитив, а объект созданный конструктором String(). (что за магический оператор new и что такое функция-конструктор мы узнаем дальше).
- 5. Узнали, что именно за счёт создания обёртки над примитивом (new String(‘str’)) c ним можно работать как с объектом. Именно эту обёртку создаёт интерпретатор вокруг примитива, когда мы пытаемся работать с ним как с объектом, но после выполнения операции она разрушается (поэтому примитив никогда не сможет запомнить свойство, которое мы ему присвоим a.test = ‘test’- свойство test исчезнет с обёрткой).
- 6. Узнали, что у объектов есть метод toString() который возвращает строковое представление объекта (для типа number valueOf() – вернёт числовое значение).
- 7. Поняли, что при выполнении операций конкатенации или математических операциях примитивы могут переопределить свой тип в нужный. Для этого они используют функции-обёртки своих типов, но без оператора new (str = String(str)).(в чём разница и как это работает, поговорим дальше)
- 8. И наконец, узнали, что typeof берёт значения из жёстко зафиксированной таблицы (вот откуда ещё одно заблуждение, основанное на typeof null //object).
5 функций C# на каждый день
2012-08-20 в 8:30, admin, рубрики: Программирование, функции, метки: c++, функцииПривет, дорогой хабр! Далее я приведу 5 функций, которые мне, в своей работе приходится постоянно использовать.
1. Получение длины файла
public int getFileRowsCount(string pathToFile)
{
System.IO.TextReader streamReader = new System.IO.StreamReader(pathToFile);
int rowsCounter = 0;
while ((streamReader.ReadLine()) != null)
{
rowsCounter++;
}
streamReader.Close();
return rowsCounter;
}