Как я получаю свое мозговое перемещение в “режим шепелявости?”

AngularJS по умолчанию портирует входные данные, поэтому вам нужно использовать ng-trim="false", чтобы передать ведущее и конечное пробелы в ваше pattern regex.

См. документацию :

ngTrim (необязательно)

Если установлено значение false, угловой не будет автоматически обрезать вход. Этот параметр игнорируется для элементов управления input[type=password], которые никогда не будут обрезать вход.

(по умолчанию: true)

blockquote>

24
задан boutta 3 March 2009 в 14:28
поделиться

18 ответов

Это немного похоже на поездку на велосипеде, это просто берет практику. Попытайтесь решить некоторые проблемы с ним, возможно ProjectEuler, и в конечном счете это нажмет.

Кто-то упомянул книгу "Маленький Интриган", и это - довольно хорошее чтение. Хотя это предназначается для Схемы, фактические проблемы будут стоить работать через.

Удачи!

16
ответ дан Sean 16 October 2019 в 08:00
поделиться

В дополнение к тому, что другие SO'ers уже предложили, вот мои 2 цента:

  1. Начинают учить язык и испытывают несколько простых числовых проблем / проблем хобби на языке
  2. ВАЖНЫЙ: Сообщение решение/код StackOverflow, прося мнение людей, если это - действительно путь LISPy , чтобы сделать это.

Всего наилучшего

1
ответ дан 16 October 2019 в 08:00
поделиться

Я проверил бы Программирование Clojure. Это - замечательная книга для non-lispers.

1
ответ дан Rayne 16 October 2019 в 08:00
поделиться

Кто сказал, что это собирается нажать? я всегда смущаюсь

, Но если Вы думаете о том, сколько абстракции возможно скрыться позади макросов шепелявости. Тогда Ваш мозг взорвется.

:)

1
ответ дан Flinkman 16 October 2019 в 08:00
поделиться

Для меня важная вещь состоит в том, чтобы удостовериться, что Вы делаете все в 'шепелявости-y' путь. Не испытывайте желание думать 'В Java, который я использовал бы для цикла здесь, как я делаю для циклов в Lisp?' но пройти достаточно примеров и учебных руководств (поскольку кто-то указал, , SICP идеально подходит для этого), что можно начать определять, когда взгляды кода 'Lisp-y' и распознают общеязыковые парадигмы.

я, конечно, знаю чувство рассмотрения некоторого кода, который я только что написал и интуитивно зная, что это правильно идиоматично для того языка и платформы/платформы - что, я думаю, когда это 'нажимает'.

Редактирование : И престижность за выбор функционального языка, меньшие студенты просто сделали бы это в Java:)

1
ответ дан Mark Pim 16 October 2019 в 08:00
поделиться

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

Тогда попытка реализовать некоторую мелочь (пытаются сделать это полезным для Вас или у Вас не могло бы быть мотивации).

Lisp в поле является отличным способом намочить ноги.

1
ответ дан temp2290 16 October 2019 в 08:00
поделиться

Удача. Это взяло меня до примерно на полпути через курс "Языков программирования" в колледже, прежде чем Схема "нажала". Как только это произошло, тем не менее, все просто имело смысл, и я влюбился в функциональное программирование.

Запись интерпретатор Lisp в Lisp.

1
ответ дан Adam Jaskiewicz 16 October 2019 в 08:00
поделиться

Моя персональная практика должна найти маленький проект (что-то, что могло бы устранить 3-5 ночей, взламывая), и реализуйте ее. Как насчет блога фильтруют инструмент? Возможно, просто Ханойские башни или реализация Связанного списка (это - обычно 1-суточные проекты).

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

А ОГРОМНАЯ справка берет курс в чем-то как... гм... LISP!:) Домашняя работа вынудит Вас противостоять большому количеству понятий, и она нажала для меня задолго до законченного семестра.

Удачи!!

1
ответ дан Sam 16 October 2019 в 08:00
поделиться

Легкий!

M-x   lisp-mode

хорошо, хорошо, таким образом, у Вас не могло бы быть Emacs для мозга. Во всей серьезности, что необходимо сделать, должен стать действительно хорошим в рекурсии. Это может быть вполне мозговой деформацией первоначально при попытке расширить понятие рекурсии вне канонических примеров, но в конечном счете это приведет к большему количеству жидкости, lispy код.

кроме того, много людей становится одержимым круглой скобкой, и я действительно не знаю, почему - синтаксис очень прост и последователен и может быть освоен в минутах. Для меня я приехал для Интригования изучив C++ и Java, и я всегда думал, что различием между "функциями" и "операторами" была ложная дихотомия, и это обновлялось для наблюдения того устраненного различия.

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

Наконец, я не уверен, что поддерживает Clojure, имеет для макросов, но их считают основной частью шепелявости. Однако я не волновался бы об изучении их, пока Вы не очень знакомы с вышеупомянутыми объектами - хотя макросы невероятно полезны и универсальны, они также используются менее часто, чем другие методы, которые я упомянул.

2
ответ дан Kyle Cronin 16 October 2019 в 08:00
поделиться

Я запустил бы с языка, который может быть интерпретирован. Я нашел Московский ML быть довольно легким. Это - легкая реализация Стандартного ML.

1
ответ дан boutta 16 October 2019 в 08:00
поделиться

Просто помните: это - все данные!

3
ответ дан Lorenzo 16 October 2019 в 08:00
поделиться

Некоторые мысли о Шепелявят, не характерный для Clojure (я не эксперт Lisp, таким образом, я надеюсь, что они главным образом корректны и полезны):

Кодирование в AST

я знаю мало о компиляторе или теории интерпретатора, но каждый раз я кодирую в Lisp, это поражает меня, что как непосредственно создавать AST.

Это - часть того, что "код =, который данные" означают, кодируя в Lisp, много похож на заполняющиеся структуры данных (вложенные списки) с узлами AST. Удивительный, и легко читать также (с правильным текстовым редактором).

А Программируемый Язык программирования

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

Это делает создание , DSL или интерпретатор в Lisp очень легки (см. также метакруговая оценка ).

Никогда ничего не перезагружают

И в большинстве систем Lisp, код (включая документацию) может анализироваться и заменяться в горячем режиме во время выполнения.

Усовершенствованное ООП

Затем большинству Систем Lisp получили своего рода Объектную Систему из CLOS, который является усовершенствованным (по сравнению со многими реализациями ООП) и настраиваемая Объектная Система (см. Искусство Протокола Метаобъекта).

Все эти функции, где изобретено давно, но я не уверен, что они доступны на многих других языках программирования (хотя большинство нагоняет, например, с закрытиями), таким образом, необходимо "открыть вновь" и привыкнуть к ним путем осуществления (см. книги в других ответах).

4
ответ дан Svante 16 October 2019 в 08:00
поделиться

В образовательных целях я рекомендовал бы Схему PLT. Это - портативная и мощная среда с очень хорошими примерами и еще лучшей документацией. Это поможет Вам обнаружить мысли позади функционального программирования шаг за шагом и в очень очевидном способе. Выбор небольшого приложения для реализации поможет Вам учащий новый язык.

http://www.plt-scheme.org/

Дополнительно "Структура и Интерпретация Компьютерных программ" H. Abelssn, G. Sussman и J. Sussman является очень хорошей книгой относительно Схемы (и программирующий).

Отношения

mue

4
ответ дан themue 16 October 2019 в 08:00
поделиться

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

, Например, для вычисления квадрата элементов списка, забывают о длине списка, и такие приемы, всего думают математически как этот:

  • , если список пуст->, я сделан

  • в противном случае тогда, список должен иметь голову и хвост-> Вы вычисляете квадрат головы, затем просите, чтобы Ваша функция сделала то же с хвостом.

Просто думают об общем случае и основном, и что Вы испускаете данные и не изменяете их (если Вы не хотите изменить их;)).

Удачи!

14
ответ дан Svante 16 October 2019 в 08:00
поделиться

Вы могли проверить Маленький Интриган .

6
ответ дан Andrew Hare 16 October 2019 в 08:00
поделиться

Запишите некоторые простые классические функции, к которым способен Lisp, как

  • инвертируют список

  • , говорят, находится ли атом где-нибудь в записи s-выражения

  • , РАВНОЙ, чтобы сказать, ли 2 s-выражения равны

  • , КРАЙ записи для получения списка атомов в краю s-выражения

  • пишет SUBST, то пишет SUBLIS

  • Символьное дифференцирование

  • , Алгебраическое упрощение

  • пишет простую ОЦЕНКУ и/или ПРИМЕНЯЕТСЯ

, Понимают, что Lisp хорош для этих видов функциональных программ без побочных эффектов.

Это также полезно для побочного эффекта с сохранением информации (нефункциональные) программы, но это больше похоже на "программы", чем "функции".

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

2
ответ дан Mike Dunlavey 16 October 2019 в 08:00
поделиться

Смотрите на 99 проблем Lispy

4
ответ дан Abhijith 28 November 2019 в 22:33
поделиться

Как насчет этого: http://www.defmacro.org/ramblings/lisp.html

Это очень простое, пошаговое введение в мышление в lisp с точки зрения обычного императивного программиста (Java, C # и т. д.).

5
ответ дан 28 November 2019 в 22:33
поделиться