- 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);
3.14159265 07.03.2020 21:00 # 0
3.14159265 07.03.2020 21:30 # 0
3.14159265 07.03.2020 21:31 # +1
IIIuMnAH3E 07.03.2020 23:00 # +2
3.14159265 08.03.2020 00:03 # +1
Вот это по-турецки «головной убор». Инфа сотка.
IIIuMnAH3E 08.03.2020 00:14 # +1
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)
3.14159265 08.03.2020 00:31 # +2
Прихожу и долго по-английски пытаюсь объяснить что мне надо.
И hat, и cap.
3.14159265 08.03.2020 01:00 # +1
Фром Оттоман Туркисх شاپقه (шапка), борровед фром Руссиан şápka (šáпка).
Kstati, russkoe slowo proizoşlo iz francuzskogo.
Ултимателй фром тхе Олд Френцх цхапе, синце тхе 14тх центурй.
A uje iz russkogo kto tolxko ne zaimstwowal.
Десцендантс:
→ Курдисх:
Централ Курдисх: شەپکە (шепке), شەبکە (шебке)
→ Персиан: شابگا (šâбгâ)
→ Оттоман Туркисх: شاپقه (шапка)
Туркисх: шапка
→ Армениан: շափխա (šапʿьа)
→ Уйгхур: شەپكە (схепке)/şәpkә (схепке)"
guest8 08.03.2020 00:40 # −999
3.14159265 07.03.2020 21:01 # 0
YxaHbckuu_nemyx 07.03.2020 23:43 # 0
Какой анскилл )))
3.14159265 07.03.2020 21:01 # 0
YxaHbckuu_nemyx 07.03.2020 23:42 # 0
3.14159265 08.03.2020 00:41 # +1
guest8 08.03.2020 00:49 # −999
3.14159265 08.03.2020 00:52 # 0
Во-вторых, не херит спец. символы выше 0x7F.
В-третьих, он работает в обе стороны, с ингриша на русский тоже создавая приятный шизоэффект.
gost 08.03.2020 00:52 # 0
Ну ладно, ладно, вложенные функциональные вызовы Питона сосут.
3.14159265 08.03.2020 00:54 # +1
Nu ladno, ladno, wlojennīe funkcionalxnīe wīzowī Pitona sosut.
guest8 08.03.2020 00:56 # −999
gost 08.03.2020 01:02 # 0
guest8 08.03.2020 01:05 # −999
gost 08.03.2020 01:12 # 0
petuhi.filter(petuh => petuh.name == 'syoma').map(petuh => petuh.iq)
.
А так-то, ИМХО, на самых простых операциях, вроде этой, *comprehensions выглядят более читабельными: «(что for где if когда)». А вот когда надо сделать несколько .map.filter.map.filter — там да, генераторы сосать начинают.
А ещё вложенные *comprehensions — это пиздец:
guest8 08.03.2020 01:15 # −999
gost 08.03.2020 01:21 # 0
3.14159265 08.03.2020 01:17 # +1
Нет. Это самая гавняная фича питона.
Хотя код вроде компактнее и более похож на английский текст.
gost 08.03.2020 01:20 # 0
Хм?
3.14159265 08.03.2020 01:21 # 0
Мой парсер подвисал, когда натыкался на такие конструкты.
gost 08.03.2020 01:26 # 0
3.14159265 08.03.2020 01:34 # 0
2. Спец. конструкт языка, для узкой задачи. То есть Синтаксический сахар.
3. Нарушает There's Only One Way
4. Нельзя написать своё или как-то переиначить. С фунциональщиной могу написать свой [1,2,x=>x+1]).forEachData() который при итерации, например, будет игнорить функции.
guest8 08.03.2020 01:39 # −999
gost 08.03.2020 01:42 # 0
2. Создание списков/генераторов/словарей по простейшим критериям — очень распространённая задача. Создание отдельной коньструкции для неё уместно.
3. TOOWTDI — эфемерная питушня, которую нарушает чуть ли не любая коньструкция в Питоне.
4. Потому что *comprehensions нужны для простых задач, сводящихся к простому arr.filter().map(). Ну и да, а почему не (x for x in arr if type(x) == int)?
А вот по поводу
> слишком много слов подряд без разделителей
пожалуй, соглашусь.
3.14159265 08.03.2020 01:48 # 0
Да сахар это, причём не оч. удачный. С ФП можно своё настрогать. Не намного длинее.
gost 08.03.2020 01:55 # 0
3.14159265 08.03.2020 02:02 # 0
100%
>более удачный
Притом намного. Поскольку функции в ФП повсеместны. Этот сахар заметно снижает синтаксическую переголову.
C ними мне гораздо проще стало говнячить js-однострочники.
https://govnokod.ru/26475#comment532191
3.14159265 08.03.2020 02:06 # +1
gost 08.03.2020 02:09 # +3
1024-- 08.03.2020 10:49 # +1
+1. То ли дело Mr Eich. У него один и тот же синтаксис успешно служил долгие годы как для лямбд, так и для обычных функций без СМС и регистрации как один способ сделать абстракцию.
IIIuMnAH3E 08.03.2020 11:11 # +1
3.14159265 08.03.2020 01:59 # +1
Смысл в том, что если в языке-конструкторе когда какой-то родной конструкт не устраивает это можно починить. Сделав свой.
Взять негодный for~in в js. Написал свой $.each.
Или хранение данных вперемешку с кодом.
Написал свой forEach, который итерируется только по значениям не являющимся функциями.
Благодаря ФП можно настрогать себе аналогов любых императивных конструктов на любой вкус.
>(x for x in arr if type(x) == function)
А такое говно придётся везде копипастить.
Или пилить отдельный метод. Но тогда comprehension будут использованы всего один раз. В том методе.
gost 08.03.2020 02:06 # 0
> если в языке-конструкторе когда какой-то родной конструкт не устраивает
Починить != сделать новый. Написание $.each никак не исправляет говёный for~in.
>>> Потому что *comprehensions нужны для простых задач, сводящихся к простому arr.filter().map().
Именно на таких задачах они выглядят просто и нативно («pythonic»).
1024-- 08.03.2020 10:37 # +1
Иначе это было бы глупо.
Это же декларативные описания множеств из математики. Математический синтаксиальный сахарок. Такой питушне самое место в функциональном питухе.
Однако, сами comprehensions я не люблю за то, что они более жёткие. Там, где была произвольная коллекция и произвольное преобразование, которые соединили через map, в comprehensions есть произвольная коллекция и обрубок отображательного кода, который только в лямбду и пихнёшь.
Я эту питушню использовал по большей части из-за параноидальности питона, когда хотел вывести массив через запятую.
Божественный JS:
Анскильный python:
gost 08.03.2020 01:44 # 0
1024-- 08.03.2020 10:45 # +1
> отсутствие классическихх chain call'ов — проёб
А точно ли это функциональщина? Мне всегда казалось, что цепочкушня - признак ООП-питушни, и в реальном мире чаще занята ООПитухами, чем ФПитухами.
Цепочкушня легче соответствует парадигме порче this. Чтобы испортить свой аргумент, его надо передать по ссылке. В C++ это может быть объект чужого класса, автор которого сделал его const. А this - всегда свой и по умолчанию меняется.
Кстати, смотрите, какой анскилл в JS:
P.S. Хорошо, xs не изменился сам, функциональная чистота осталась за счёт того, что попердолили временнушню. Но на месте временнушни мог бы быть и xs. Напьёшься - будешь!
3.14159265 08.03.2020 01:20 # 0
Чуть лучше. Но тоже хуйня
Проблема в том что слишком много слов подряд без разделителей.
IIIuMnAH3E 08.03.2020 01:25 # 0
3.14159265 08.03.2020 01:28 # 0
А тут идут скобочки, точечки, двоеточия, запятые и тут хуяк скобка открылась, предложение из кучи текста и опять привычный код с разделителями.
Steve_Brown 10.03.2020 11:57 # 0
или
guest8 10.03.2020 12:01 # −999
1024-- 10.03.2020 12:33 # 0
bormand 10.03.2020 18:18 # +2
1024-- 10.03.2020 19:10 # 0
> В бусте
Видел, что ДОБРОЕ ИМЯ ДОБРАЯ СЛАВА ИМЯ ИМЯРЕК В ЧЕСТИ gost недавно писал какую-то лямбдушню с std::. Вероятно, эта питушня уже и в Стандарте.
gost 10.03.2020 19:48 # +1
Не, это очень покоцанное говно, только для бинда.
3.14159265 08.03.2020 00:54 # 0
guest8 08.03.2020 00:57 # −999
3.14159265 08.03.2020 00:59 # 0
guest8 08.03.2020 01:00 # −999
inkanusinho 08.03.2020 23:25 # 0
bagrinho 25.05.2020 22:38 # 0
http://govnokod.ru/26689#comment549551
KOPOHABuPYC 27.05.2020 00:31 # 0