воскресенье, 22 октября 2017 г.

Ссылка. Haskell Platform

https://www.haskell.org/platform/windows.html

Ссылка. Haskell

http://eax.me/haskell-first-app/

Вопрос. Haskell

А кстати можно так написать?
h :: Int -> Int
h x + 1 = x

h 3 == 2

Правило вывода сработает?

Ну это я таким извращённым способом операцию декремента реализую. Теоретически.

Понятно, что можно написать напрямую:
h x = x - 1

но мне интересна внутренняя природа устройства правил вывода

Ссылка. Take

четверг, 19 октября 2017 г.

first:second:tail

first:second:tail

ARRAY VAR A
VAR first
VAR second
VAR tail

A .Split ( first second tail )

first:second:tail

ARRAY VAR A
VAR first
VAR tail

A .Split ( first tail )

first:second:third:tail

ARRAY VAR A
VAR first
VAR second
VAR third
VAR tail

A .Split ( first second third tail )

ToDo. Изменение положения оператора

Обратные тики-кавычки нужны для инфиксной записи бинарной функции. То есть мы располагаем mod между аргументами.

1 2 + =>
1 :`  + 2

Или:

1 2 + =>
1 `  + 2

operator `
 in ValueLeft
 ^ in Lambda
 ^ in ValueRight
 ValueLeft // - значение слева
 ValueRight DO // - разыменовываем значение справа
Lambda DO // - вызываем "лямбду"/"функтор"
;

Реализация sum на Haskell

sum ( [] ) = 0
sum (x:xs) = x + sum (xs)