вход
- глагол , строка, которая соответствует регулярному выражению
([a-pr-vyzıöüçğş]*[aeıioöuü][bcçdfgğhj-nprsştvyz]+|([a-pr-vyzıöüçğş]*[aeıioöuü]){2})(mak|mek)
- множественное число , истинное или ложное значение
- person , целое число, имеющее значение 1, 2 или 3
- время , целое число, имеющее значение 1, 2 или 3
Вывод
Сопряженная форма турецкого глагола глагола в лице м / м / м человек, во множественном числе , если во множественном числе является TRUE
и единственным числом , если это не так , в
- Если время равно 1, простое настоящее;
- Если время равно 2, продолжающееся настоящее время;
- Если время 3, будущее.
правила
Турецкие глаголы спрягаются в трех элементах, которые расположены по порядку:
- Штока , образованный путем удаления
mak
илиmek
с конца инфинитива; Знак напряженной , что:
Для простого подарка:
- -r если ствол заканчивается гласной;
- -ир согласно правилам гармонии гласных (см. ниже), если в основе есть более одного слога (то есть гласный), или из одного из следующих неправильных глаголов: almak, bilmek, bulmak, durmak, gelmek, görmek, kalmak, olmak, ölmek, sanmak, vermek, varmak, vurmak ;
- - согласно правилам гармонии гласных, если основа содержит один слог и не указана в неправильных глаголах выше.
Для продолжающегося настоящего, -yor , где я изменяется согласно гласным правилам гармонии . Стебли, оканчивающиеся гласным, сбрасывают этот гласный перед добавлением этого суффикса, после чего суффикс согласуется с последним или последним гласным в слове (гарантированно существующим в регулярном выражении).
- На будущее:
- -ecek согласно гласным правилам гармонии, если основание заканчивается согласной;
- -ecek согласно гласным правилам гармонии, если основа заканчивается гласной.
Личный суффикс для обозначения исполнителя действия, во всех случаях в соответствии с правилами гармонии гласных :
|Singular|Plural| |---|--------|------| |1st| -im | -iz| |2nd| -sin |-siniz| |3rd| (none) | -ler|
Финальное k будущего времени становится ğ перед -im и -iz , так что, например
(almak, TRUE, 1, 3)
, дастalacağız
.
Правила гласной гармонии
Турецкие гласные подразделяются на две группы: задняя ( a ı o u
) и передняя ( e i ö ü
) по тому, в каком месте рта они произносятся. Суффиксы слова меняют гласные в соответствии с гласными корня.
Все вышеприведенные суффиксы, в которых вместо i используется гласная:
- -ı если последний гласный перед суффиксом равен
ı
илиa
(оба эти гласные вернулись и не были заземлены); - -i, если последний гласный перед суффиксом равен
i
илиe
(оба эти гласные передние и безосновательные; обратите внимание, что турецкое различие между точечной и точечной I ); - -u если последний гласный перед суффиксом равен
u
илиo
(оба эти гласные вернулись и округлены); или - -ü если последний гласный перед суффиксом равен
ü
илиö
(оба эти гласные передние и округлые).
Обратите внимание на существующий непрерывный суффикс -iyor . i
Гармонизирует, но o
не меняется. Таким образом, личные суффиксы будут гармонировать с o
.
Все суффиксы , перечисленные выше , которые имеют е как гласный вместо этого использовать:
- -e если последний гласный перед суффиксом является передним гласным; или
- -a если последний гласный перед суффиксом является обратным гласным.
Неправильные глаголы
Глаголы gitmek , TATMAK , ditmek , gütmek и etmek изменить последний t
к d
перед любыми окончаниями , которые начинаются с гласного (который включает в себя все концовки в этой проблеме). Любой глагол, оканчивающийся на -etmek, также заменяетt
a d
и добавляет -er для простого настоящего (хотя это не так для других глаголов).
Контрольные примеры
gütmek, FALSE, 1, 2 -> güdüyorum
almak, TRUE, 3, 3 -> alacaklar
boğmak, TRUE, 2, 1 -> boğarsınız
ölmek, FALSE, 3, 1 -> ölür
boyamak, TRUE, 1, 2 -> boyuyoruz
affetmek, FALSE, 2, 1 -> affedersin
söylemek, TRUE, 3, 1 -> söylerler
söylemek, FALSE, 3, 2 -> söylüyor
söylemek, FALSE, 1, 3 -> söyleyeceğim
источник
-etmek
правила?Ответы:
Javascript (ES6),
466456451446 байтБез комментариев и комментариев
Контрольные примеры
источник
d
-мутации на всех глаголах, оканчивающихся на -etmek ? Я не знаю JavaScript, но из того, что я могу собрать, похоже, что он просто смешан с остальными.sed, 583 байта
Как и мой ответ на тесно связанный вопрос о Dactylic Hexameter , на самом деле это просто перевод правил в виде регулярных выражений.
Применение:
Принимает вход в виде:
Итак, тестовые случаи:
Сломать:
Результаты для тестовых случаев:
источник
sed -E ''
, так как вы указали sed как язык, а не как bash, поэтому рассматривайте скрипт как исходный код sed. Затем вы можете запустить его следующим образом:printf ...|sed -Ef filename
добавив еще 1 байт для флага E, сохранив в итоге 8 байт. Кстати, до сегодняшнего дня никогда не знал, что -E эквивалентно -r!