111 / 85 / 21
Регистрация: 06.06.2011
Сообщений: 411
Записей в блоге: 1
1

"Развернуть" монаду обратно

08.10.2013, 15:18. Показов 618. Ответов 3
Метки нет (Все метки)

Продолжаю искать практическое применение для Haskell.
Я понимаю, что то, что я хочу, немного противоречит истинному ФП.
Ну а вдруг нет.

Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import Graphics.Win32.Window
import Graphics.Gloss
 
--размер окна
size = (640, 480)
 
-- размещаем окно по центру рабочего стола
coord :: (Int, Int) -> IO (Int, Int)
coord (w, h) = do
    desktop   <- getDesktopWindow 
    (x,y,r,b) <- getWindowRect desktop
    let width  = fromIntegral(r - x)
    let height = fromIntegral(b - y)
    let left = quot (width - w) 2
    let top = quot (height - h) 2
    return (left, top)
 
main = do
    display (InWindow "My Window" size (coord size)) white scena
 
scena = pictures [
    Circle 80, 
    Circle 20, 
    Polygon[(0, 0), (0, 30), (30, 30), (0, 0)]
    ]
Ругается на 19-ую строку. Потому-что coord имеет тип IO (Int, Int), а надо (Int, Int).

Как в этом случае поступают гуру?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2013, 15:18
Ответы с готовыми решениями:

Функция для нахождения "Наибольшего общего делителя" и "Наименьшего общего кратного"
Помогите пожалуйста!!!!СРОЧНО НАДО!! Нужно написать функцию для нахождения НОД(наибольшего общего...

[КуМир] Ввести символьную строку и заменить все буквы "а" на "б" и наоборот (как заглавные так и строчные)
ввести символьную строку и заменить все буквы а на буквы б и наоборот как заглавные так и строчные...

Превышено максимальное количество присоединённых клиентов (ГИС "ИнГЕО")
Здраствуйте возникла проблема с программой ГИСИНГЕО Превышено максимальное количество допустимых...

Реализация абстрактного типа данных "Конечный автомат" (Standard ML)
Мучаюсь я с языком STANDARD ML :( . Мне было дано такое задание: Реализовать тип данных &quot;Конечный...

3
Эксперт по математике/физике
4156 / 2059 / 424
Регистрация: 19.07.2009
Сообщений: 3,117
Записей в блоге: 24
08.10.2013, 15:38 2
Проблемы?
Haskell
1
2
3
main = do
    coordsize <- coord size
    display (InWindow "My Window" size coordsize) white scena
2
111 / 85 / 21
Регистрация: 06.06.2011
Сообщений: 411
Записей в блоге: 1
08.10.2013, 15:44  [ТС] 3
Мозги еще править и править
0
111 / 85 / 21
Регистрация: 06.06.2011
Сообщений: 411
Записей в блоге: 1
08.10.2013, 17:58  [ТС] 4
Целый день головоломок.
Потом посмотрел со стороны: "Как, и это все!?"
До чего ж компактно.
Думаю, с третьей попытки Хаскель мне, таки, покорится.
Вложения
Тип файла: rar test.rar (1.5 Кб, 6 просмотров)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2013, 17:58

Как устроены "внутри себя" условия и циклы в языке Forth
Допустим, я хочу перевести программу с Форта на Джаву. Конечно, можно понять ее смысл и реализовать...

Хаскелл-платформ после обновления "десятки" перестала компилировать
После обновления Win10 у меня перестала работать компиляция в exe. Обычно я компилировал с помощью...

Теория-практика: накопление суммы в "чисто" функциональных ЯП
Согласно теории, в Haskell, как и в ему подобных ЯП, конструкция S = S + A (где то так...) не может...

Определение середины отрезка и ошибка "is applied to too few arguments"
module Class where half :: Float -&gt; Float -&gt; Float -- половина отрезка а б half x y = (y - x) /...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru