Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 26

Сравнение элементов списка и возвращения значений True/False

15.05.2014, 08:56. Показов 3285. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать функцию segregateFMy :: [a -> Bool] -> a -> ([a -> Bool], [a -> Bool]), которая берет список функций и определенные значения и возвращает кортеж из двух списков функций. В первом элементе кортежа должен оказаться список функций, которые возвращают True, а во втором элементе кортежа - список тех функций, которые возвращают False. Например, segregateFMy [odd, even, (>5), (>4), (>1)] 6 = ([even, (>5), (>1)], [odd, (<4)]).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.05.2014, 08:56
Ответы с готовыми решениями:

Рекурсия: вернуть количество элементов списка, равных True
Составить рекурсивную функции и записать их в по крайней мере 2-мя из трех предложенных способов. В случае необходимости возможно...

Вывести true если в списке есть повторяющиеся символы. Иначе false
Вывести true если в списке есть повторяющиеся символы. Иначе false

Дана последовательность из n логических значений. Определить, каких значений в последовательности больше - True или False
Дана последовательность из n логических значений. Определить, каких значений в последовательности больше - True или False.

6
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38180 / 21115 / 4307
Регистрация: 12.02.2012
Сообщений: 34,724
Записей в блоге: 14
15.05.2014, 11:50
Haskell
1
2
3
4
5
segregateFMy :: [a -> Bool] -> a -> ([a -> Bool], [a -> Bool])
segregateFMy flist a = (ft,ff)
                       where f = map (\ q -> (q,(q a))) flist
                             ft = map fst $ filter (\ z -> snd z) f
                             ff = map fst $ filter (\ z -> not (snd z)) f
Правда, проверить правильность будет непросто (т.к. будут проблемы с show для функций). Можно так:

Haskell
1
2
3
4
Main> head (fst (segregateFMy [odd, even, (>5), (>4), (>1)] 6)) 7
False
Main> head (fst (segregateFMy [odd, even, (>5), (>4), (>1)] 6)) 6
True
1
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 26
22.05.2014, 08:05  [ТС]
она не сравнивает элементы списков, сравнивает только последние 2 индекса, типа "совпадаю/не совпадают" и но ним выводит true/false. нужно сравнить элементы списка и индекс после списка, затем вывести кортеж из 2-х списков, в первом списке значения, возвращающие значение true, а во втором - false. смотрите еще раз в примере, там более понятно показано
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38180 / 21115 / 4307
Регистрация: 12.02.2012
Сообщений: 34,724
Записей в блоге: 14
22.05.2014, 10:15
Ты сам-то понял, чего написал? Функция segregateMy возвращает кортеж из двух списков функций. Напечатать их нельзя. Но можно любую из этих функций вызвать и проверить результат. Что не нравится?
0
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 26
22.05.2014, 11:00  [ТС]
прошу прощения. просто нам ничего объяснять нормально не стали, вот и всей группой не понимаем просто этот язык, поэтому могу сморозить любую глупость

Добавлено через 25 минут
кстати, а как эти функции вызвать и проверить? я все никак понять не могу....
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38180 / 21115 / 4307
Регистрация: 12.02.2012
Сообщений: 34,724
Записей в блоге: 14
22.05.2014, 11:19
Так я и пишу - вот такой вызов

Haskell
1
(segregateFMy [odd, even, (>5), (>4), (>1)] 6))
вернет кортеж из двух списков функций:
- первый содержит функции f, для которых (f 6)==True. Это список [even,(>5),(>4),(>1)]
- второй содержит функции f, для которых (f 6)==False. Это список [odd]

Беда в том, что эти списки нельзя напечатать. Но можно вызвать любую из этих функций, и убедиться, что она работает

Добавлено через 1 минуту
Haskell
1
2
3
head (fst (segregateFMy [odd, even, (>5), (>4), (>1)] 6)) 7 
False
-- вызов первой функции из первого списка [even,(>5),(>4),(>1)] (even 7)==False
1
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
22.05.2014, 15:10
Цитата Сообщение от Catstail Посмотреть сообщение
Беда в том, что эти списки нельзя напечатать.
Вообще, можно, вот только никакой пользы это не принесёт:
Haskell
1
2
3
4
5
6
7
{-# LANGUAGE FlexibleInstances #-}
instance Show (a -> Bool) where
    show = const "a predicate"
 
λ> [const True, const False]
[a predicate,a predicate]
λ>
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.05.2014, 15:10
Помогаю со студенческими работами здесь

Присвоение значений к TRUE и FALSE
Как сделать если TRUE то 3, а если FALSE то 2 без условной функции if?

чтение значений true ili false
есть xmL файл &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;TegFalse&gt; &lt;pictureBox2&gt;false&lt;/pictureBox2&gt; &lt;/TegFalse&gt; на главной...

Запись значений checkbox (true/false) в БД
Здравствуйте, необходимо записать в БД значение выбран ли checkbox или нет,у меня почему то записывается 0 в не зависимости выбран checkbox...

Изменение логических значений true и false на 1 и 0
Доброго времени суток, уважаемые форумчане. Заранее извиняюсь за дурацкий вопрос, я просто новичок в программировании. Нужно было в...

Вместо логических значений true и false отображать значения 1 и 0
class LogicalOpTable { public static void main(String args) { boolean p, q; System.out.println(&quot;P\t Q\t ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru