Да. Большинство паттернов состоят из значений (в том числе и из присвоенных им имен, которые для удобства можно называть переменными, хотя таковыми они не являются) и конструкторов типа.
Допустим, ваша функция принимает на вход два списка, и конкатенирует их. Вполне логично, что паттерны также должны представлять из себя списки:
(++) :: [a] -> [a] -> [a] --Функция принимает на вход два списка со зачениями типа a и возвращает список со значениями типа a
[] ++ ys = ys --Этот паттерн описывает, что делает функция, когда она применяется к пустому списку
x:xs ++ ys = x : (xs ++ ys) --А этот паттерн описывает, что делает функция, когда применяется к непустым спискам
Представьте, что вы в паттерне укажете данные типа Bool. Это будет ведь бессмысленно, правда?
Вы использовали спецсимволы в названии типа, а не в конструкторах типа. Если бы вы их использовали в конструкторах, то вам нужно было бы в качестве первого символа поставить двоеточие (исключением является конструктор пустого списка).
Любой конструктор можно сделать инфиксным, использовав его в обратных одинарных кавычках в инфиксной нотации. И любой инфиксный оператор можно использовать в префиксной нотации, заключив его в скобки.
Двоеточие в качестве первого символа конструктора нужно использовать, когда сам конструктор состоит из специальных символов (например, @@, +++, @!* и т.д.), исключением является конструктор пустого списка [ ], который состоит из спецсимволов, но не имеет двоеточия в качестве первого символа. И да — конструкторы, состоящие из спецсимволов, используются обычно в инфиксной нотации.
Попробуйте сервис Rizzoma.com (кстати, его делают россияне) — исходя из описанного вами функционала, вам должно понравиться. Кроме того, Риззома лично мне очень нравится своими возможностями предоставления большого количества структурированной информации «сверху вниз», а также возможностью легкого подключения в топики дополнительного функционала типа вставки кода с подсветкой синтаксиса, или же вставки LaTeX-выражений. Вот, на всякий случай, контакт одного из кофаундеров этого сервиса.
В reCaptcha подсовывают слова из отсканированных книг. Одно слово, которое уже распознано, а второе — которое еще не распознано. По распознанному слову отсекают ботов, а распознавая нераспознанное слово, пользователь помогает оцифровывать книги. Так что да — вместо слова, которое невозможно распознать, можно написать что угодно.
Ольга, неплохо было бы еще озвучить и то, с какой долей основателям стартапа, который будет выбран, должны быть готовы расстаться за это. Иначе к вам набегут только те, которые готовы на все, лишь бы привлечь хоть какие-то инвестиции. Не думаю, что это ваша цель.
Все зависит от причины оспаривания. Вы не сможете оспорить транзакцию по основанию, будто это не вы использовали карту. Но сможете, если товар вам не был доставлен либо доставили не то, что вы заказывали.
Когда торговая точка запрашивает авторизацию, то она говорит банку: зарезервируйте для меня такую-то сумму на счету этого гражданина. Банк резервирует и обязан держать ее в резерве, потому что он должен будет оплатить эту сумму торговой точке, если придет запрос на списание. Разблокируется сумма только если истекает срок авторизации (обычно 30 дней), либо если торговая точка пришлет запрос на отмену авторизации. Почему зарубежные конторы не посылают такой запрос по картам российских банков — это вопрос к ним, а не к банкам.
В ФБ вы тоже можете по каждой записи в отдельности решать, кто ее увидит, а кто не увидит. Можете показывать только друзьям, только друзьям друзей или, скажем, только друзьям, но за исключением вот таких-то друзей. Можете наиболее часто используемые настройки и по умолчанию для всех записей сделать…
Я не хочу вдаваться в философскую дискуссию по этому вопросу, поэтому замечу лишь, что во времена Спарты в военной науке применялись лишь изобретения в вопросах стратегии и тактики — т.е. те, которые не могли быть применены на гражданке.
Вот только не надо разжигать холивар еще и про «свободные выборы в России, отражающие мнение большинства» ;). Ну всем же понятно, какие тут «свободные выборы». Даже тем, кто с пеной у рта будет отстаивать преимущества жизни в СССР и «благотворное влияние путинской стабильности».
Приведенный вами список, конечно, впечатляет, однако следует заметить, что указанные вами спартанцы, которых помнят до сих пор, являются видными военачальниками, а поэтов, указанных вами, помнят по сочиненным им военным гимнам. Ксенофонта я сам очень люблю, однако и его Спарта любила за его впечатляющие описания военных походов.
Военное дело вещь, конечно, хорошая, однако вперед цивилизацию двигают наука и искусство, но никак не войны.
Я согласен. Но лучше и не будет, потому что наиболее активная часть населения, которая могла бы увеличивать конкуренцию путем создания своих компаний, не желает этого делать из-за климата в стране. Часть переезжает в другие страны, а часть решает зарабатывать деньги в близких к власти структурах типа Газпрома. Оставшихся явно недостаточно. Но это не вина рыночной экономики.
Допустим, ваша функция принимает на вход два списка, и конкатенирует их. Вполне логично, что паттерны также должны представлять из себя списки:
Представьте, что вы в паттерне укажете данные типа Bool. Это будет ведь бессмысленно, правда?
Двоеточие в качестве первого символа конструктора нужно использовать, когда сам конструктор состоит из специальных символов (например, @@, +++, @!* и т.д.), исключением является конструктор пустого списка [ ], который состоит из спецсимволов, но не имеет двоеточия в качестве первого символа. И да — конструкторы, состоящие из спецсимволов, используются обычно в инфиксной нотации.
Военное дело вещь, конечно, хорошая, однако вперед цивилизацию двигают наука и искусство, но никак не войны.