- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
var ER={}, x=new TextDecoder('KOI8-R').decode(Uint8Array.from( Array.apply(0,new Uint8Array(64).map( (_,b)=>b&1 ? 128+0x61+b/2 : 65+b/2 ))))
for (var i=0;i<64;i+=2){
if (i<52)
ER[x[ i ]] = x[i+1], ER[ x[i].toLowerCase() ] = x[i+1].toLowerCase()
ER[x[i+1]] = x[ i ], ER[x[i+1].toLowerCase()] = x[ i ].toLowerCase();
}
text=`<Налог>
<Наименование>НДС</Наименование>
<УчтеноВСумме>false</УчтеноВСумме>
</Налог>`
text.replace(/./g,(char,offset,text) => ER[char] || char);
Вот это по-турецки «головной убор». Инфа сотка.
From Ottoman Turkish شاپقه (şapka), borrowed from Russian ша́пка (šápka).
Кстати, русское слово произошло из французского.
Ultimately from the Old French chape, since the 14th century.
А уже из русского кто только не заимствовал.
Descendants:
→ Kurdish:
Central Kurdish: شەپکە (şepke), شەبکە (şebke)
→ Persian: شابگا (šâbgâ)
→ Ottoman Turkish: شاپقه (şapka)
Turkish: şapka
→ Armenian: շափխա (šapʿxa)
→ Uyghur: شەپكە (shepke)/шәпкә (shepke)
Прихожу и долго по-английски пытаюсь объяснить что мне надо.
И hat, и cap.
Фром Оттоман Туркисх شاپقه (шапка), борровед фром Руссиан şápka (šáпка).
Kstati, russkoe slowo proizoşlo iz francuzskogo.
Ултимателй фром тхе Олд Френцх цхапе, синце тхе 14тх центурй.
A uje iz russkogo kto tolxko ne zaimstwowal.
Десцендантс:
→ Курдисх:
Централ Курдисх: شەپکە (шепке), شەبکە (шебке)
→ Персиан: شابگا (šâбгâ)
→ Оттоман Туркисх: شاپقه (шапка)
Туркисх: шапка
→ Армениан: շափխա (šапʿьа)
→ Уйгхур: شەپكە (схепке)/şәpkә (схепке)"
Какой анскилл )))
Во-вторых, не херит спец. символы выше 0x7F.
В-третьих, он работает в обе стороны, с ингриша на русский тоже создавая приятный шизоэффект.
Ну ладно, ладно, вложенные функциональные вызовы Питона сосут.
Nu ladno, ladno, wlojennīe funkcionalxnīe wīzowī Pitona sosut.
petuhi.filter(petuh => petuh.name == 'syoma').map(petuh => petuh.iq)
.
А так-то, ИМХО, на самых простых операциях, вроде этой, *comprehensions выглядят более читабельными: «(что for где if когда)». А вот когда надо сделать несколько .map.filter.map.filter — там да, генераторы сосать начинают.
А ещё вложенные *comprehensions — это пиздец:
Нет. Это самая гавняная фича питона.
Хотя код вроде компактнее и более похож на английский текст.
Хм?
Мой парсер подвисал, когда натыкался на такие конструкты.
2. Спец. конструкт языка, для узкой задачи. То есть Синтаксический сахар.
3. Нарушает There's Only One Way
4. Нельзя написать своё или как-то переиначить. С фунциональщиной могу написать свой [1,2,x=>x+1]).forEachData() который при итерации, например, будет игнорить функции.
2. Создание списков/генераторов/словарей по простейшим критериям — очень распространённая задача. Создание отдельной коньструкции для неё уместно.
3. TOOWTDI — эфемерная питушня, которую нарушает чуть ли не любая коньструкция в Питоне.
4. Потому что *comprehensions нужны для простых задач, сводящихся к простому arr.filter().map(). Ну и да, а почему не (x for x in arr if type(x) == int)?
А вот по поводу
> слишком много слов подряд без разделителей
пожалуй, соглашусь.
Да сахар это, причём не оч. удачный. С ФП можно своё настрогать. Не намного длинее.
100%
>более удачный
Притом намного. Поскольку функции в ФП повсеместны. Этот сахар заметно снижает синтаксическую переголову.
C ними мне гораздо проще стало говнячить js-однострочники.
https://govnokod.ru/26475#comment532191
+1. То ли дело Mr Eich. У него один и тот же синтаксис успешно служил долгие годы как для лямбд, так и для обычных функций без СМС и регистрации как один способ сделать абстракцию.
Смысл в том, что если в языке-конструкторе когда какой-то родной конструкт не устраивает это можно починить. Сделав свой.
Взять негодный for~in в js. Написал свой $.each.
Или хранение данных вперемешку с кодом.
Написал свой forEach, который итерируется только по значениям не являющимся функциями.
Благодаря ФП можно настрогать себе аналогов любых императивных конструктов на любой вкус.
>(x for x in arr if type(x) == function)
А такое говно придётся везде копипастить.
Или пилить отдельный метод. Но тогда comprehension будут использованы всего один раз. В том методе.
> если в языке-конструкторе когда какой-то родной конструкт не устраивает
Починить != сделать новый. Написание $.each никак не исправляет говёный for~in.
>>> Потому что *comprehensions нужны для простых задач, сводящихся к простому arr.filter().map().
Именно на таких задачах они выглядят просто и нативно («pythonic»).
Иначе это было бы глупо.
Это же декларативные описания множеств из математики. Математический синтаксиальный сахарок. Такой питушне самое место в функциональном питухе.
Однако, сами comprehensions я не люблю за то, что они более жёткие. Там, где была произвольная коллекция и произвольное преобразование, которые соединили через map, в comprehensions есть произвольная коллекция и обрубок отображательного кода, который только в лямбду и пихнёшь.
Я эту питушню использовал по большей части из-за параноидальности питона, когда хотел вывести массив через запятую.
Божественный JS:
Анскильный python:
> отсутствие классическихх chain call'ов — проёб
А точно ли это функциональщина? Мне всегда казалось, что цепочкушня - признак ООП-питушни, и в реальном мире чаще занята ООПитухами, чем ФПитухами.
Цепочкушня легче соответствует парадигме порче this. Чтобы испортить свой аргумент, его надо передать по ссылке. В C++ это может быть объект чужого класса, автор которого сделал его const. А this - всегда свой и по умолчанию меняется.
Кстати, смотрите, какой анскилл в JS:
P.S. Хорошо, xs не изменился сам, функциональная чистота осталась за счёт того, что попердолили временнушню. Но на месте временнушни мог бы быть и xs. Напьёшься - будешь!
Чуть лучше. Но тоже хуйня
Проблема в том что слишком много слов подряд без разделителей.
А тут идут скобочки, точечки, двоеточия, запятые и тут хуяк скобка открылась, предложение из кучи текста и опять привычный код с разделителями.
или
> В бусте
Видел, что ДОБРОЕ ИМЯ ДОБРАЯ СЛАВА ИМЯ ИМЯРЕК В ЧЕСТИ gost недавно писал какую-то лямбдушню с std::. Вероятно, эта питушня уже и в Стандарте.
Не, это очень покоцанное говно, только для бинда.
http://govnokod.ru/26689#comment549551