Каково самое впечатляющее приложение Lisp? [закрытый]

  • Item::increment ожидает self по значению, оно перемещает Item, на котором оно вызывается.
  • Container::increment_item берет &mut self по ссылке, он позволяет изменять self, но не позволяет вам вступать во владение self (или любой из его частей).
  • Когда вы вызываете self.item.increment(amount), вы пытаетесь передать значение self.item по значению, тем самым перемещая владение в функцию Item::increment, но вам не разрешено делать это со ссылками на значения, которыми вы не владеете.

Просто передайте self в Item::increment по изменяемой ссылке, вот для чего нужны изменяемые ссылки:

struct Item {
    x: u32,
}

impl Item {
    pub fn increment(&mut self, amount: u32) {
        self.x += amount;
    }
}

struct Container {
    item: Item,
}

impl Container {
    pub fn increment_item(&mut self, amount: u32) {
        self.item.increment(amount);
    }
}

Если вы настаиваете на том, чтобы стать владельцем Item, тогда вы можете используйте mem::replace:

use std::mem;

struct Item {
    x: u32,
}

impl Item {
    pub fn increment(self, amount: u32) -> Self {
        Item { x: self.x + amount }
    }
}

struct Container {
    item: Item,
}

impl Container {
    pub fn increment_item(&mut self, amount: u32) {
        self.item = mem::replace(&mut self.item, Item { x: 0 }).increment(amount);
    }
}

, но это кажется излишне сложным в этом случае.

47
задан nbro 8 September 2017 в 12:45
поделиться

19 ответов

ITA Software поисковый сервис тарифа авиакомпании. См. здесь для понимания, почему это является впечатляющим.

46
ответ дан rz. 26 November 2019 в 19:07
поделиться
1
ответ дан Rainer Joswig 26 November 2019 в 19:07
поделиться

Посмотрите этот вопрос для списка многого коммерческого использования Lisp.

1
ответ дан Community 26 November 2019 в 19:07
поделиться

Трудно сказать, какое программное обеспечение Lisp точно большинство впечатляющее, но я добавил бы Рода Symbolics и связанное программное обеспечение к списку успехов, которые стоит упомянуть. Также не забывайте СЛИЗЬ .

2
ответ дан fionbio 26 November 2019 в 19:07
поделиться

Другое приложение, которое я действительно люблю, PWGL.

PWGL является визуальным языком программирования для состава компьютера, которому помогают, и синтеза звука. Это приложение LispWorks , которое доступно для Windows и Mac OS X (бесплатная загрузка). Это использует большую сложную графику (сделанный в OpenGL), например, в его усовершенствованном редакторе примечания. Это может обработать и создать звуки. Это также может использовать ввод и вывод Midi. Это идет с действительно большим количеством примеров в ее учебном руководстве. Если у Вас есть LispWorks, можно также загрузить двоичные файлы и написать собственный код с помощью него.

поддержка приложения действительно удивительна и если Вы готовы изучить его использование, это - часы забавы для компоновщика хобби и звукорежиссера хобби.

3
ответ дан Rainer Joswig 26 November 2019 в 19:07
поделиться
3
ответ дан Crashworks 26 November 2019 в 19:07
поделиться

Сервер Публикации белого дома

Во время администрирования Clinton приложение Lisp использовался для информирования американских граждан о правительственных новостях. Приложение было записано в языке Common LISP и работало сверху веб-сервера HTTP CL на двух LISP-компьютерах Symbolics (позже Открыть Genera виртуальный LISP-компьютер). Это также использовало Кермек объектно-ориентированная база данных. Приложение обеспечило таксономию правительственных областей, которые могли быть запрошены с сетью или почтовым интерфейсом для публикаций. Например, граждане могли узнать то, что вице-президент Al Gore заявил о проблемах охраны окружающей среды на определенной неделе. Это было приложением, был закрыт Джорджем Бушем - младшим, когда он приходит к власти.

4
ответ дан foo 26 November 2019 в 19:07
поделиться

Обидус, Исходный Сервер Amazon Web

Это по словам Steve Yegge.

4
ответ дан Mark Harrison 26 November 2019 в 19:07
поделиться

Хранилище AutoCAD G2 Yahoo

4
ответ дан user62617 26 November 2019 в 19:07
поделиться

То, что в конечном счете стало покупками Yahoo!, было сделано с Lisp. См. описание

исходного автора
5
ответ дан Toybuilder 26 November 2019 в 19:07
поделиться

Пила-рыба была менеджером окон GNOME по умолчанию давным-давно. Теперь они принимают значение по умолчанию в Метагород, но можно все еще использовать Пилу-рыбу (также автономный), и это все еще активно разрабатывается.

Пила-рыба очень многофункциональна и настраиваема. Что Вы ожидали бы от менеджера окон LISP.

8
ответ дан ypnos 26 November 2019 в 19:07
поделиться

LISP-компьютеры использовались НАСА, чтобы проверить, что Шаттл запускается. Из пресс-релиза Symbolics с 1990:

"Недавно Аэронавигационный Соотечественник и администрация Пространства (НАСА) использовал технологию Symbolics высокой четкости для анализа видеоизображений HDTV запуска Исследования в режиме реального времени. Эта система высокой четкости позволила инженерам НАСА получить повтор критических систем запуска. Инженеры смогли улучшить и увеличить изображения с высоким разрешением старта, чтобы проанализировать условие и определить потенциальные проблемы с мозаиками шаттла".

Они использовали набор LISP-компьютеров со специальными платами обработки изображений.

9
ответ дан foo 26 November 2019 в 19:07
поделиться

Одно из самых впечатляющих приложений Lisp, конечно Cyc. Cyc является проектом, запущенным Doug Lenat, который пытается поместить знание здравого смысла в систему, основанную на знаниях. Не только немного, но и действительно действительно большое знание. Люди изучили много широко разных вещей, и это было замечено ограничение к программному обеспечению искусственного интеллекта для не знания чего-либо этого. Каков типичный цвет меда? Мы сидим на стуле или под стулом? Чашка нового кофе является горячей. Когда идет дождь снаружи, не идет дождь внутри. Морская вода содержит соль, но вода в водоеме не делает. Большинство птиц может полететь. Некоторые птицы не могут полететь. Удивительно, сколько из этих фактов, знают правила и люди понятий.

Cyc находится в процессе непрерывного развития с 1984, и база знаний содержит (числа с 2004), больше чем 2,5 миллиона фактов и правил. Это также содержит больше чем 150 тысяч понятий (подобный классам в ООП). Cyc разрабатывается в SubL (диалект языка Common LISP).

Знание вводится в CycL (декларативный основанный на логике язык). Специально обученные люди вводят знание. Cyc проверяет, что это новое знание не находится в конфликте с имеющимися знаниями. Это может также получить новые заключения, и можно запросить его. Для его ответов это может также генерировать объяснения. Cyc имеет также много проблемно-ориентированной реализованной эвристики.

В первые годы проект начал разрабатывать на LISP-компьютерах, но сегодня программное обеспечение является портативным и является также доступным заинтересованным студентам и исследованиям (OpenCyc и ResearchCyc).

11
ответ дан Rainer Joswig 26 November 2019 в 19:07
поделиться

Я особенно люблю Максимумы . Другой хороший проект, который я обнаружил относительно недавно, Nyquist.

18
ответ дан Eduard - Gabriel Munteanu 26 November 2019 в 19:07
поделиться

DART. Приложение логистики, записанное в языке Common LISP для первой войны в Персидском заливе, для освобождения Кувейта от Saddam Hussein. Можно было сказать, что война запустилась, когда это приложение было готово. Разработчики работали под интенсивной нехваткой времени для позволения.

Это отдельное приложение, как говорят, заплатило для всех (!) американских правительственных инвестиций в исследование AI.

20
ответ дан foo 26 November 2019 в 19:07
поделиться

LISP это сам! :)

31
ответ дан fuentesjr 26 November 2019 в 19:07
поделиться

Emacs.

, По крайней мере, части его записаны в Lisp Emacs.

49
ответ дан nbro 26 November 2019 в 19:07
поделиться

LISP или по крайней мере средство анализа LISP.

1
ответ дан nbro 26 November 2019 в 19:07
поделиться

IRCAM's OpenMusic (среда компьютерной композиции).

1
ответ дан 26 November 2019 в 19:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: