Size: a a a

Беседка Perl-групп

2020 April 05

AP

Anton Petrusevich in Беседка Perl-групп
потому что иначе надо на налл проверять
источник

AP

Anton Petrusevich in Беседка Perl-групп
pragus
а где есть мутабельные строки кроме перла?
да дофига где. и вижу смысл только в компилируемых языках, где гарантия иммутабельности позволяет компилировать более быстрый код, более защищённый для тредов. но с тредами в питоне, насколько я знаю, во времена второй версии было так себе, однако ж...
источник

AP

Anton Petrusevich in Беседка Perl-групп
Vadim Goncharov
правда, для сравнения строк этого не требуется к счастью :)
eq на надеф таки варнинг сыплет
источник

AP

Anton Petrusevich in Беседка Perl-групп
Vadim Goncharov
там небось был тип "буфер" или чот такое?
буфер это в жабе. я погуглил про питон. если надо заменить символ, то пришлось написать:
s = s[:i] + c + s[i+1:]
источник

YM

Yuri Myasoedov in Беседка Perl-групп
Anton Petrusevich
буфер это в жабе. я погуглил про питон. если надо заменить символ, то пришлось написать:
s = s[:i] + c + s[i+1:]
красота.
источник

YM

Yuri Myasoedov in Беседка Perl-групп
а с трэдами ничего не изменилось вроде. в CPython всё тот же GIL
источник

AP

Anton Petrusevich in Беседка Perl-групп
Yuri Myasoedov
а с трэдами ничего не изменилось вроде. в CPython всё тот же GIL
вот и не понятно нахрена
источник

p

pragus in Беседка Perl-групп
Anton Petrusevich
да дофига где. и вижу смысл только в компилируемых языках, где гарантия иммутабельности позволяет компилировать более быстрый код, более защищённый для тредов. но с тредами в питоне, насколько я знаю, во времена второй версии было так себе, однако ж...
Так где кроме перла хотя бы из интерпретируемых?
источник

YM

Yuri Myasoedov in Беседка Perl-групп
ruby php
источник

VG

Vadim Goncharov in Беседка Perl-групп
Anton Petrusevich
да дофига где. и вижу смысл только в компилируемых языках, где гарантия иммутабельности позволяет компилировать более быстрый код, более защищённый для тредов. но с тредами в питоне, насколько я знаю, во времена второй версии было так себе, однако ж...
а что, в третьей избавились от GIL ? :)
источник

YM

Yuri Myasoedov in Беседка Perl-групп
Anton Petrusevich
вот и не понятно нахрена
кто-то пробовал GIL снять экспериментально. выяснилось, что без него в однопоточных приложениях код выполнялся медленнее, чем с GIL. так-то это много раз уже обсуждалось в соответствующих тематических ресурсах
источник

VG

Vadim Goncharov in Беседка Perl-групп
Anton Petrusevich
вот и не понятно нахрена
Гвидо так проще было, только и всего
источник

VG

Vadim Goncharov in Беседка Perl-групп
pragus
Так где кроме перла хотя бы из интерпретируемых?
да даже в JavaScript, разве нет?
источник

YM

Yuri Myasoedov in Беседка Perl-групп
нет
источник

VG

Vadim Goncharov in Беседка Perl-групп
источник

AP

Anton Petrusevich in Беседка Perl-групп
Vadim Goncharov
а что, в третьей избавились от GIL ? :)
я знаю что они как-то двигались в этом направлении, так что может быть с прицелом на решение...
источник

VG

Vadim Goncharov in Беседка Perl-групп
They are immutable. You cannot change a character within a string with something like var myString = "abbdef"; myString[2] = 'c'. The string manipulation methods such as trim, slice return new strings.

In the same way, if you have two references to the same string, modifying one doesn't affect the other

let a = b = "hello";
a = a + " world";
// b is not affected

(c) https://stackoverflow.com/questions/51185/are-javascript-strings-immutable-do-i-need-a-string-builder-in-javascript
источник

VG

Vadim Goncharov in Беседка Perl-групп
а, вот почему я думал - в остальных вместе с иммутабельностью наружу еще и кишки указателей торчат
источник

AP

Anton Petrusevich in Беседка Perl-групп
Vadim Goncharov
Гвидо так проще было, только и всего
ещё меня в питоне бесит фор, который на самом деле только форич.
источник

AP

Anton Petrusevich in Беседка Perl-групп
>>> str="111"
>>> print(str)
111
>>> print(str(22))
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable

секонд трай при повторном запуске:
>>> print(str(22))
22
источник