Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Haskell
Перезагрузить страницу Определить функцию gaps, такую что gaps [1,3,5] = [[3,5], [1,5], [1,3]]
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Riptor Riptor вне форума
Новичок
 
Аватар для Riptor
 
Сообщений: 5
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.03.2011
По умолчанию Определить функцию gaps, такую что gaps [1,3,5] = [[3,5], [1,5], [1,3]] - 08.05.2012, 09:15

Доброго времени суток.
Я решил заняться изучением Haskell и вот собираю простые задачки и пытаюсь решить.

Задача такая: определить функцию gaps которая возвращает список списков, полученный всеми возможными удалениями одного элемента из исходного списка. то есть gaps [1..5] = [[2,3,4,5], [1,3,4,5], [1,2,4,5], [1,2,3,5], [1,2,3,4]]

у меня получился вот такой вариант решения:
haskell Код:
without :: Int -> [a] -> [a]
without n       [] = []
without n xs = take n xs ++ drop (n + 1) xs

gaps :: Eq a => [a] -> [[a]]
gaps xs = map ( `without` xs) (map fst (zip [0..] xs))
Подскажите, есть ли более простое и/или корректное решение. Спасибо.
Ответить с цитированием
  (#2 (permalink)) Старый
calabi-yau calabi-yau вне форума
Member
 
Сообщений: 338
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 10 сообщениях
Регистрация: 28.09.2009
По умолчанию 08.05.2012, 10:08

haskell Код:
gaps (x:xs) = xs : map (x:) (gaps xs)
gaps []     = []


Don't fear the Monad
Ответить с цитированием
Пользователь сказал cпасибо:
Riptor (08.05.2012)
  (#3 (permalink)) Старый
Riptor Riptor вне форума
Новичок
 
Аватар для Riptor
 
Сообщений: 5
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.03.2011
По умолчанию 08.05.2012, 15:59

Круть. Спасибо.
Ответить с цитированием
Ads
Ответ

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить функцию создающую список y4 Cherry_berrY Lisp 0 15.12.2010 00:08
Как определить функцию для бинарного дерева Inkaterina Lisp 0 07.12.2010 02:00
Как программно определить функцию AntiSemit Haskell 1 20.11.2010 22:23
Как определить функцию substitute imported_pepper Haskell 2 08.11.2010 16:26
Определить функцию, возвращающую список I_love_lisp Lisp 2 29.05.2010 00:47
определить функцию предиката Alenka-dev Prolog 1 26.04.2010 14:24
Написать функцию GMA такую, что GMA L принимает значение Т Sunako Lisp 3 02.12.2009 12:38
Определить рекурсивную функцию COPY imported_Zic Lisp 18 11.02.2007 11:19
Определить функцию одного аргумента L andrey-m Lisp 0 27.11.2006 14:07
Определить функцию пользователя на С++ Vlast Вопросы начинающих программистов 11 23.12.2005 01:27
Определить рекурсивную функцию Alexeika Lisp 1 21.11.2004 23:18
Sub Mysocket_OnConnect ка прописать такую функцию Anonymous Visual C++ 3 01.12.2002 14:29



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