Три версии в Smalltalk, от самого немого для исправления.
<час> В Smalltalk, =
оператор сравнения:
isPalindrome: aString
"Dumbest."
^ aString reverse = aString
<час> сообщение #translateToLowercase
возвращает строку как нижний регистр:
isPalindrome: aString
"Case insensitive"
|lowercase|
lowercase := aString translateToLowercase.
^ lowercase reverse = lowercase
<час> И в Smalltalk, строки являются частью Collection
платформа, можно использовать сообщение #select:thenCollect:
, таким образом, вот последняя версия:
isPalindrome: aString
"Case insensitive and keeping only alphabetic chars
(blanks & punctuation insensitive)."
|lowercaseLetters|
lowercaseLetters := aString
select: [:char | char isAlphabetic]
thenCollect: [:char | char asLowercase].
^ lowercaseLetters reverse = lowercaseLetters
Люди часто помещают в папку пустой файл в качестве заполнителя, чтобы преодолеть это ограничение ...
Я обычно помещаю .gitignore
в эти каталоги, поскольку вы, вероятно, все равно захотите игнорировать любые данные, сгенерированные во время выполнения.
Вы абсолютно правы. Git, как и некоторые другие системы контроля версий, не принимает во внимание пустые папки или свойства папок. Папки существуют только постольку, поскольку в них есть файлы. Если вы хотите смоделировать это, вам нужно поместить в них файлы-заполнители.
Вы должны понимать, что вы просите свою систему управления версиями настроить некоторые ресурсы, которые не являются исходными, не являются частью вашей системы сборки, но необходимы для работы вашего приложения. Я бы сделал одно из следующего:
Точно так же, если приложение хочет добавить в файл журнала, оно не имеет смысла запускать этот файл журнала в системе контроля версий, не так ли?
Либо поместите пустые файлы-заполнители в папки, которые должен отслеживать git, либо добавьте инструкции по созданию этих папок в вашу систему сборки, если это возможно.
Я столкнулся с этой проблемой, когда пытался использовать git в качестве инструмента резервного копирования с поддержкой дедупликации и сжатия.
Моим решением было создание собственной системы. Он доступен на http://github.com/meingbg/store
Опять же, моей целью было хранить файлы, а не работать с кодом.