Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/cyberblogger/data/www/cyberblogger.ru/wp-includes/widgets.php on line 1044
Блог .Net программиста

Окончательный выбор)))

Опубликовано sharp 11.08.2009

Наконец то немного освободился от работы и появилось немного свободного времени. За это время снес дебиан, достала проблема с зависимостями и перепробовал кучу дистрибутивов от Slackware до той же OpenSuse, которая понравилась соседнем товарищу из соседнего блога. Мой же выбор пал на Arch Linux.  Что могу сказать, установка конечно потруднее той же OpenSuse, но 2 дня настройки системы и  результатом не нарадуюсь.

Выбор сделан!

Опубликовано sharp 04.07.2009

Сегодня полностью определился с дистрибутивом, им оказался Debian. Установка прошла довольно таки безболезненно. Буду разбираться и походу писать здесь о задачах и их решении которые будут возникать с позиции новичка в этом деле. Надеюсь кому-нибудь это поможет.

Ошибка с плагинами

Опубликовано sharp 03.07.2009

Сегодня хотел добавить себе аватар в блоге. Захожу на страницу с плагинами, выбираю нужный, нажимаю редактировать вылетает ошибка - 500 Внутрення ошибка сервера.

Переход на Linux

Опубликовано sharp 01.07.2009

Да, действительно вам не показалось (думал никогда такого не скажу), но все таки - .Net программист перешел на Linux. Сделать этот выбор меня заставил великий и ужасный WINDOWS. Не буду перечислять достоинства или недостатки windows, однако после долгих размышлений понял что это не моя операционная система. Вот как-то так, сейчас занимаюсь тем что, выбираю дистрибутив как выбиру обязательно отпишусь.

Шпаргалка по F#

Опубликовано sharp 25.06.2009

Компания A6Systems выложила на своём сайте шпаргалку по языку F#, в которой на нескольких страничках коротко описываются основные конструкции языка. Скачивайте!

Пост №3 Условный оператор в F#

Опубликовано sharp 21.06.2009

Практически в каждом языке программирования синтаксис реализует в том или ином виде условный оператор, для реаилзации разветвленных алгоритмов. В F# синтаксис условного оператора довольно похож на Pascal, но семантика у них разная.

Синтаксис условного оператора:

if  expr1 then expr2 else expr3;;

Где exprN какаое - то выражение. Причем тип выражения expr1 - bool, а выражения expr1 и expr2 должны быть одного типа.

Например:

if  2 = 1 then 0 else 2;;

-:int = 2 

или

if 2 = 1 this “0″ else “2″;;

-:string = “2″

Ветка else, как и во многих языках может быт опущена, в этом случае будет подставлено значение по умолчанию else (), то есть выражение expr2 должно быть типа unit. Также можно заметить главное отличае условного оператора в F# от императивных языков в том, что if возвращет не обязательно булевое значение. Значение возвращаемое оператором if  зависит от проверяемых выражений.    

Пост №2. Типизация в F#

Опубликовано sharp 12.06.2009

Одной из главных особенностью в F# на мой взгляд является то, что в этом языке не требуется явное объявление типов переменных, компилятор сам распазнает какой тип должна иметь та или иная сущность. Конечно же это не означает, что явное объявление типов запрещено. Вобще в F# существует 2 вида типов:

  • Изменяющиеся типы
  • Неизменяющиеся типы

В первом случае при объекты могут быть изменены, а при изменении объектов второго типа создается новый экземпляр. F# поддерживает почти все типы данных CTS:

  • bool
  • byte
  • sbyte
  • char
  • decimal
  • double
  • float
  • int
  • int16
  • int32
  • int64
  • string

А также bignum для рациональных  чисел произвольного размера, bigint для целых чисел произвольного размера.

F# строго типизированный язык, и хотя вам не обязательно объявлять тип значения, вы должны следить за типизацией иначе компилятор выдаст ошибку. Даже в таких несложных примерах, где казалось бы компилятор должен проглотить несоответсвие типов, как например это делает C#:

 >1+1.0;;

error FS0001: The type ‘float’ does not match the type ‘int’.

 Числа с плавающей точкой имеют специальные значения для бесконечных величин - infinity, и для неопределенного результата - nan. Также F# включает набор основных операций над числами с

плавающей точкой:

  •  ceil -  округлени числа в болшую сторону

  • floor - округление числа в меньшую сторону

  • sqrt - квадратный корень

  • exp - экспонента

  • log - натуральный логарифм

  • log10 - логарифм с основанием 10

  • sin,cos,cosh,sinh,tan,tanh - тригонометрические функции

>sin(1.58932);;

val it:float = 0.9998284417

 >ceil 3.5;;

val it:float = 4.0

 >floor 3.5;;

val it:float = 3.0

 Булевый тип. Значение типа bool принадлежит множеству из 2 элементов: true и  false. Основные операторы:

  • not - отрицание

  • && - логическое и

  • || - логическое или

>true && false;;

val it: bool = false

 >not true || (true && true);;

val it:bool = true

Тип Unit

Тип Unit определяет множество всего из одного элемента значение которого ().  Иными словами функции результат которых равен () соответствуют понятию процедуры, т.е аналог ключевог слова void в С++.

 

 

Пост №1. F# Введение

Опубликовано sharp 10.06.2009

Итак приступим к изучению. Для начала нам необходимо бдет скачать компилятор для F# -F# Компилятор.
F# - единствнный функциональный язык семейства языков платформы .Net, то есть базовой концепцией в отличии от императивных языков является функция в ее математическом понимании.  Синтаксис F# построен на математической нотации, а программирование больше похоже на алгебру нежели на описание конкретных действий на как мы привыкли в императивном стиле. Вобще фнкциональное программирование огромная тема и для того что бы ее разобрать, одним постом не отделаться, кому интересно воспользуйтесь помощью Википедии либо специализированной литературы.  Давай те побыстрее перейдем к практике.

После того как скачали компилятор, разархивируем его. В папке bin особый интерес для нас представляют два файла:

  • Компилятор командной строки fsc.exe – с его помощью можно компилировать исполняемые файлы и сборки в командном режиме.
  • Интерпретатор fsi.exe (F# Interactive). Запустив его, вы сможете вычислять F#-выражения в интерактивном режиме и получать результат:

Режим интерпретатора F# занимается тем, что вычисляет каждое выражение и выводит результат. Так же можно скачать дополнение к VS 2008 - fs.msi и программировать на F# в студии.

Ни одно введение в язык программирования не обходится без программы «Hello, World». F# не станет исключением.

#light

open System

Console.WriteLine("Hello World!!!");;

Вот и все наша первая программа на F# готова. Осталось только с компилировать и запусить.

В следующих постах расскажу о синтаксисе, типах данных и многом другом, что нам понадобится при написании программ на F#.


Copyright © 2007 Блог .Net программиста. All rights reserved.