Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Haskell
Перезагрузить страницу Как правильно работать с пользовательскими типами
Ответ
 
Опции темы Опции просмотра
  (#16 (permalink)) Старый
calabi-yau calabi-yau вне форума
Member
 
Сообщений: 338
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 10 сообщениях
Регистрация: 28.09.2009
По умолчанию 15.12.2011, 00:27

Цитата:
Сообщение от amorita Посмотреть сообщение
при реализации функций можно воспользоваться стандартными функциями toUpper и toLower, переводящими символ в верхний и нижний регистры соответственно. Они определены в модуле Char: чтобы их использовать, добавьте в начало программы строчку:

import Char
......


Don't fear the Monad
Ответить с цитированием
  (#17 (permalink)) Старый
ahil903 ahil903 вне форума
Новичок
 
Сообщений: 9
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.10.2012
По умолчанию 03.10.2012, 18:56

Если тему ещё хоть кто-то просматривает, не обойдите)
Нужна небольшая помощь, или хотя бы идея, как можно реализовать одну вещь.
Задание, исходные данные, функции и типы - абсолютно те же, но, кроме всего прочего, преподша в качестве доп.задания велела этот список отсортировать Немного своеобразно отсортировать: сначала вывести все алфавитно-цифровые символы, после число CapsLock'ов и число Shift'ов. Вот...

Идейка кое-какая есть:
haskell Код:
sort :: [Key] -> [Key]
sort [] = []
sort ((ALN c):xs) = ALN c: sort xs
sort ((CapsLock):xs) = sort xs ++ [CapsLock]
sort ((Shift):xs) = sort xs ++ [Shift]
sort (x:xs) = sort xs
но так он выведет сначала все ALN, а затем шифты и капсы вразнобой, а нужно немного не так)
Кто может помочь - пожжалуйста)
Ответить с цитированием
  (#18 (permalink)) Старый
calabi-yau calabi-yau вне форума
Member
 
Сообщений: 338
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 10 сообщениях
Регистрация: 28.09.2009
По умолчанию 04.10.2012, 11:50

haskell Код:
sort = sortBy pre
  where
    pre (ALN _)  _     = LT
    pre CapsLock Shift = LT
    pre _        _     = GT


Don't fear the Monad
Ответить с цитированием
Пользователь сказал cпасибо:
ahil903 (04.10.2012)
  (#19 (permalink)) Старый
ahil903 ahil903 вне форума
Новичок
 
Сообщений: 9
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.10.2012
По умолчанию 04.10.2012, 18:52

Большое спасибо, что отозвались)
Только как из этого рабочую функцию собрать (только изучать начал, поэтому далеко не силён в этом)
Такой вариант конечно же не верный, правда ведь?)

haskell Код:
sort :: [Key] -> [Key]
sort [] = []
sort ((ALN c):xs) = ALN c: sort xs
sort ((CapsLock):xs) = sort xs ++ [CapsLock]
sort ((Shift):xs) = sort xs ++ [Shift]
sort (x:xs) = sort xs
sort = sortBy pre
  where
    pre (ALN _)  _     = LT
    pre CapsLock Shift = LT
    pre _        _     = GT
Ответить с цитированием
  (#20 (permalink)) Старый
calabi-yau calabi-yau вне форума
Member
 
Сообщений: 338
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 10 сообщениях
Регистрация: 28.09.2009
По умолчанию 04.10.2012, 20:12

Цитата:
Сообщение от ahil903 Посмотреть сообщение
Такой вариант конечно же не верный, правда ведь?)
правда.
Цитата:
Сообщение от ahil903 Посмотреть сообщение
Только как из этого рабочую функцию собрать (только изучать начал, поэтому далеко не силён в этом)
то, что выше - и есть рабочий вариант целиком.
Цитата:
Сообщение от ahil903 Посмотреть сообщение
Большое спасибо, что отозвались)
пожалуйста


Don't fear the Monad
Ответить с цитированием
Ads.
  (#21 (permalink)) Старый
ahil903 ahil903 вне форума
Новичок
 
Сообщений: 9
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.10.2012
По умолчанию 04.10.2012, 21:22

Прошу прощения, что надоедаю, но что-то ничего у меня не выходит
Пишу в файл вашу функцию:
haskell Код:
sort = sortBy pre
  where
    pre (ALN _)  _     = LT
    pre CapsLock Shift = LT
    pre _        _     = GT
библиотеку List импортирую (о необходимости этого понял, поюзав, что представляет собой SortBy)), а интерпретатор после :load вот так ругает:
"Definition of variable "sort" clashes with import "
Ответить с цитированием
  (#22 (permalink)) Старый
calabi-yau calabi-yau вне форума
Member
 
Сообщений: 338
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 10 сообщениях
Регистрация: 28.09.2009
По умолчанию 04.10.2012, 22:15

Цитата:
Сообщение от ahil903 Посмотреть сообщение
"Definition of variable "sort" clashes with import "
Конфликт имен - в Data.List уже есть функция sort. Нужно просто дать свое имя функции, например добавить апостроф:
haskell Код:
sort' = sortBy pre
или использовать такую форму импорта:
haskell Код:
import Data.List hiding (sort)
в этом случае библиотечная sort не импортируется.


Don't fear the Monad
Ответить с цитированием
Пользователь сказал cпасибо:
ahil903 (04.10.2012)
  (#23 (permalink)) Старый
ahil903 ahil903 вне форума
Новичок
 
Сообщений: 9
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.10.2012
По умолчанию 04.10.2012, 23:25

Всё работает!!.) Большое вам человеческое спасибо)
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно работать с VBA Oksi4ka Visual Basic 0 20.05.2011 12:54
Как правильно работать на php Илья Агарков Вопросы начинающих программистов 0 28.03.2011 12:49
XOR как правильно с ним работать ravmad С/С++ 4 03.06.2009 00:36
Как правильно работать с eVC++ fatboy Windows CE 15 31.03.2006 20:25
RIL как правильно с ним работать ankazakov Windows CE 0 09.03.2006 12:33
JSF EL как с ней правильно работать artgonch Java 0 26.12.2005 08:47
Как правильно работать с cgi x5u1t DHTML, JavaScript, VBScript 2 26.12.2005 01:43
Как правильно работать в Dev-C++ DSD Мультиплатформенные библиотеки 1 14.09.2005 12:58
Как правильно работать с LPT Anton S Железо. Написание драйверов 4 04.06.2005 04:15
Как правильно работать с типами данных EUGIX .NET 4 26.08.2004 10:59
Как правильно работать с lsp Anonymous Visual C++ 0 20.08.2003 20:32
Как организовать обмен пользовательскими «сообщениями»между классами void Visual C++ 6 30.07.2003 02:46



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов