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

Если первый список является префиксом второго и третий суффиксом второго — вывести на экран true

07.05.2015, 13:47. Показов 1486. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Даны три списка , если первый список является префиксом второго и третий суффиксом второго - вывести на экран true
У меня есть код на лиспе , помогите переписать его на хаскель.
спасибо за ранее.

Lisp
1
2
3
4
5
6
(defun result (l1 l2 l3)
  (labels ((is-prefix (x1 x2)
              (cond ((null x1) t)
                    ((equal (car x1) (car x2)) (is-prefix (cdr x1) (cdr x2)))
                    (t nil))))
           (and (is-prefix l1 l2) (is-prefix (reverse l3) (reverse l2)))))
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.05.2015, 13:47
Ответы с готовыми решениями:

Вывести True, если первый список является префиксом второго
Здравствуйте! Приношу свои извеинения за наглость. Но не могли бы мне помочь написать программу , которая должна выводить True если...

Определить является ли первый список подсписком второго
Доборого Вам времени суток! Долго бьюсь над решением казалось бы не трудной задачи. Если кто-нибудь найдёт время помочь буду очень...

Определить, является ли первый список подмножеством второго
Определить, является ли первый список подмножеством второго. Списки не имеют дубликатов. Аргументы: первый список; ...

6
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
07.05.2015, 14:24
leprikon4eg, что, всё так плохо?

Не по теме:

Зачем ты вообще пошёл учиться на программиста?



Haskell
1
2
3
4
5
6
7
8
9
10
11
12
isPrefix :: Eq a => [a] -> [a] -> Bool
isPrefix   []     _     =  True
isPrefix   _      []    =  False
isPrefix (x:xs) (y:ys)  =  x == y && isPrefix xs ys
 
result xs ys zs = isPrefix xs ys && isPrefix (reverse xs) (reverse zs)
 
main = do
    print $ result [1,2] [1,2,3] [3,1,2]
    print $ result [1,2] [1,2,3] [3,2,2]
    print $ result [1,2] [1,3,3] [3,1,2]
    print $ result [1,2] [1,2,3] [1]
http://ideone.com/Hr1vF7
1
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
07.05.2015, 14:26
Лучший ответ Сообщение было отмечено leprikon4eg как решение

Решение

leprikon4eg, пишите интерпретатор лиспа на хаскеле и скармливайте ему вышеприведенный код. В вашей одноименной теме в разделе лиспа (откуда вы и взяли этот код) я поступил именно так. А в следующий раз, когда вы появитесь с этой эпической темой в разделе например С, то достаточно будет написать на С интерпретатор Haskell который выполнит интерпретатор лиспа который уже реализует приведенный код
0
07.05.2015, 16:52

Не по теме:

Цитата Сообщение от _Ivana Посмотреть сообщение
пишите интерпретатор лиспа на хаскеле
Вы лучше напишите конвертор лиспа в исходник Haskell или С, или что ещё по выбору. И тогда с такими вопросами будет один ответ: "используйте Конвертор _Ivana". :)

0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,707
Записей в блоге: 14
07.05.2015, 18:04
Еще вариант isPrefixOf :

Haskell
1
2
isPrefixOf :: (Eq a) => [a] -> [a] -> Bool
isPrefixOf x y = all (\ (xx,yy) -> xx==yy) (zip x y)
0
Модератор
 Аватар для Curry
5158 / 3482 / 536
Регистрация: 01.06.2013
Сообщений: 7,548
Записей в блоге: 9
07.05.2015, 18:27
Catstail, У Вас получается неважно кто чей префикс - аргументы равнозначны. У korvin_, лучше - он isPrefixOf из сорцов Data.List скопировал.

Кстати, Ваш вариант можно сократить (хоть работать будет, так же)
Haskell
1
2
isPrefixOf :: (Eq a) => [a] -> [a] -> Bool
isPrefixOf x y = all (uncurry (==)) (zip x y)
0
1 / 1 / 0
Регистрация: 30.03.2014
Сообщений: 40
08.05.2015, 18:09  [ТС]
c С я дружу. Мне не по душе лисп и хаскель. )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.05.2015, 18:09
Помогаю со студенческими работами здесь

Имеется два списка; определить, является ли первый список подсписком второго
Доборого Вам времени суток! Долго бьюсь над решением казалось бы не трудной задачи, к несчастью Haskell мне дается очень плохо. ...

Если число из второго файла больше числа в первом, то число из второго файла записывается в первый файл на место меньшего
добрый вечер. дано два файла, содержащих одинаковое количество целых чисел. перезаписать первый файл следующим образом: если число...

Для каждого числа из второго списка вывести индекс первого и последнего вхождения в первый список
Есть задача: Вам даны два списка целых чисел. Первый список отсортирован по возрастанию. Необходимо для каждого числа из второго...

While4°. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести true, если не является — вывести false.
While. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести true, если не является — вывести false.

Дано целое число N (> 0). Если оно является степенью числа 3, то вывести True, если не является — вывести False
Дано целое число N (> 0). Если оно является степенью числа 3, то вывести True, если не является — вывести False.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru