Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 14.07.2013
Сообщений: 24
1

Написать функцию, возвращающую список частот атомов, входящих в исходный список

18.10.2014, 22:04. Просмотров 1090. Ответов 6
Метки нет (Все метки)

Ребят, и еще одна задачка на написание функции.
Написать функцию, возвращающую для заданного списка lst список вида ((атом1 <число вхождений в список lst>) (атом2 <число вхождений в список lst>)...)
Спасибо вам большое
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2014, 22:04
Ответы с готовыми решениями:

Список атомов. Написать программу, возвращающую список заданного вида
приветствую всех! очень нужно решить задачу, ну никак не идёт! заранее всем спасибо Есть список...

Определить функцию (разность х у), результатом которой является список атомов, представляющих множество элементов, входящих в х и не входящих в у
Объясните пожалуйста работу функции MINUS. Определить функцию (разность х у), результатом которой...

Написать функцию, возвращающую в случае первого четного элемента исходный список, в котором первые три числа возведены в квадрат
Помогите пожалуйста подправить код и решить рекурсию. Задание: Дан список чисел. Написать...

Рекурсия: получить список атомов, представляющих множество элементов, входящих в X и не входящих в Y
Определить функцию (разность х у), результатом которой является список атомов, представляющих...

6
Заблокирован
18.10.2014, 22:53 2
А поиском воспользоваться, чтоб не создавать тему, многократно обсужденную на форуме, не дано?
2
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,354
18.10.2014, 22:59 3
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
;;; racket-lang.org
(define (count a lst (acc 0))
  (cond [(null? lst) acc]
        [(eq? a (car lst)) (count a (cdr lst) (add1 acc))]
        [(count a (cdr lst) acc)]))
 
(define (foo lst)
  (let loop ((l (remove-duplicates lst)) (acc null))
    (if (null? l)
        acc
        (loop (cdr l) (cons (list (car l) (count (car l) lst)) acc)))))
 
(foo '(a a a s s d d d d))
;'((d 4) (s 2) (a 3))
1
Модератор
Эксперт Python
27996 / 14952 / 2947
Регистрация: 12.02.2012
Сообщений: 24,504
Записей в блоге: 4
19.10.2014, 09:36 4
HomeLisp:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
(defun task (lst)
  (let* ((flst (flatten lst))
         (lf   (length flst)) 
         (slst (setof flst)))
        (mapcar #'(lambda (x) (list x (- lf (length (remove x flst))))) slst)))
 
  
 
==> task
 
(task '(a b c ((a b c c c) d e d)))
 
==> ((a 2) (b 2) (c 4) (e 1) (d 2))
1
4464 / 4178 / 350
Регистрация: 12.05.2012
Сообщений: 2,943
19.10.2014, 12:57 5
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
(defun flatten-and-count (w
                     &aux
                     (z (flat w))
                     (v (remove-duplicates z)))
  (mapcar #'(lambda (a) (list a (count a z))) v))
 
(defun flat (w &optional acc) 
  (cond ((null w) acc)
        ((atom w) (cons w acc))
        ((flat (car w) (flat (cdr w) acc)))))
 
> (flatten-and-count '(a (b (b) c) (c) c))
((A 1) (B 2) (C 3))
2
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,354
19.10.2014, 13:27 6
Lisp
1
2
3
4
;;; racket-lang.org
(define (foo lst (l (flatten lst)))
  (for/list ((i (remove-duplicates l)))
    (list i (length (filter (lambda (x) (eq? i x)) l)))))
1
428 / 382 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
23.10.2014, 08:09 7
На языке Factor:

Lisp
"abracadabra" dup length <hashtable> swap [ over inc-at ] each
 
H{ { 97 5 } { 98 2 } { 99 1 } { 100 1 } { 114 2 } }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2014, 08:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Написать функцию, возвращающую список из n копий заданного атома x
В lisp'e совсем плох. Надо решить три задачки. Написать функцию: 1.Возвращающую список из n копий...

Написать функцию, принимающую функцию l, три списка и возвращающую список со значениями, полученными применением функции l к тройкам исходных значений
Дорогие программисты,помогите пожалуйста с этим хаскеллом!Никак не могу решить эту задачу!!Одну я...

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

Написать функцию, возвращающую список, содержащий информацию о количестве подсписков на каждом уровне
Написать функцию, возвращающую список, содержащий информацию о количестве подсписков на каждом...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.