История изменений
Исправление
kompospec,
(текущая версия)
:
В этом сообщении кроме кода есть интересный анализ языков:
Но это не потому что C++ плохой. Для больших многоразовых программ он лучше. Если команда работает - он лучше, хотя хуже, чем Java и C#. Для маленьких одноразовых программ лучше были Перл и Питон, если нет требований по времени. Но Перл теперь заменяют на Раку, а Питон переусложнили.
Поздравляю! Вернусь к теме о суммарном времени написания и выполнения кода. Изначальный код на моём самодельном языке был такой:
import time
def check_combine
mref res:string len:int
cref s1:string s2:string
*len2 @int @size s2
len = 0
for *ch in s1
if len len2
break
if ch s2|len
len + 1
else
len = 0
ifnot len
res = ""
else
*s3 @string s2 @erase 0 len
res = s1 + s3
def main
*inFile @file @set_mode "r" @open "russian_nouns.txt"
*lines @array|string
lines inFile @getlines
*maxLen @int 0
*rusMaxLen @int 0
*maxRes @string ""
*startTime @int @time:time
*counter @int 0
for *s1 in lines
for *s2 in lines
counter + 1
if s1 s2
continue
*len1 @int @size s1
*len2 @int @size s2
if < len1 maxLen
continue
if < len2 maxLen
continue
*len @int 0
*res @string
res len @check_combine s1 s2
if res s1
continue
if res s2
continue
if > len maxLen
maxLen = len
rusMaxLen = maxLen / 2
*delta @int @time:time - startTime
*deltaStr @string s2 @erase len
maxRes = deltaStr + " - " s1 "-" s2
@print* counter "\t прошло: " delta " секунд, длина: " rusMaxLen ", " maxRes "\n"
@print* "\n\nРезультат: " rusMaxLen ", " maxRes "\n"
*delta @int @time:time - startTime
@print* "Полное время переборов: " delta
inFile @close
По длине он 1673 символа против 2457 на C++. То есть примерно в 1,5 раза короче. При том, можно ещё сократить, если сделать простейший вывод типов в конструкторе, а также открыть доступ к длине строки через переменную (это будет плохо с точки зрения инкапсуляции, но для маленьких одноразовых программ такое оправдано).
Но это не потому что C++ плохой. Для больших многоразовых программ он лучше. Если команда работает - он лучше, хотя хуже, чем Java и C#. Для маленьких одноразовых программ лучше были Перл и Питон, если нет требований по времени. Но Перл теперь заменяют на Раку, а Питон переусложнили.
Говорили что Перл старый, ни на что не способный язык. Проверим? (комментарий)
Исправление
kompospec,
:
В этом сообщении кроме кода есть интересный анализ языков
Поздравляю! Вернусь к теме о суммарном времени написания и выполнения кода. Изначальный код на моём самодельном языке был такой:
import time
def check_combine
mref res:string len:int
cref s1:string s2:string
*len2 @int @size s2
len = 0
for *ch in s1
if len len2
break
if ch s2|len
len + 1
else
len = 0
ifnot len
res = ""
else
*s3 @string s2 @erase 0 len
res = s1 + s3
def main
*inFile @file @set_mode "r" @open "russian_nouns.txt"
*lines @array|string
lines inFile @getlines
*maxLen @int 0
*rusMaxLen @int 0
*maxRes @string ""
*startTime @int @time:time
*counter @int 0
for *s1 in lines
for *s2 in lines
counter + 1
if s1 s2
continue
*len1 @int @size s1
*len2 @int @size s2
if < len1 maxLen
continue
if < len2 maxLen
continue
*len @int 0
*res @string
res len @check_combine s1 s2
if res s1
continue
if res s2
continue
if > len maxLen
maxLen = len
rusMaxLen = maxLen / 2
*delta @int @time:time - startTime
*deltaStr @string s2 @erase len
maxRes = deltaStr + " - " s1 "-" s2
@print* counter "\t прошло: " delta " секунд, длина: " rusMaxLen ", " maxRes "\n"
@print* "\n\nРезультат: " rusMaxLen ", " maxRes "\n"
*delta @int @time:time - startTime
@print* "Полное время переборов: " delta
inFile @close
По длине он 1673 символа против 2457 на C++. То есть примерно в 1,5 раза короче. При том, можно ещё сократить, если сделать простейший вывод типов в конструкторе, а также открыть доступ к длине строки через переменную (это будет плохо с точки зрения инкапсуляции, но для маленьких одноразовых программ такое оправдано).
Но это не потому что C++ плохой. Для больших многоразовых программ он лучше. Если команда работает - он лучше, хотя хуже, чем Java и C#. Для маленьких одноразовых программ лучше были Перл и Питон, если нет требований по времени. Но Перл теперь заменяют на Раку, а Питон переусложнили.
Говорили что Перл старый, ни на что не способный язык. Проверим? (комментарий)
Исходная версия
kompospec,
:
Поздравляю! Вернусь к теме о суммарном времени написания и выполнения кода. Изначальный код на моём самодельном языке был такой:
import time
def check_combine
mref res:string len:int
cref s1:string s2:string
*len2 @int @size s2
len = 0
for *ch in s1
if len len2
break
if ch s2|len
len + 1
else
len = 0
ifnot len
res = ""
else
*s3 @string s2 @erase 0 len
res = s1 + s3
def main
*inFile @file @set_mode "r" @open "russian_nouns.txt"
*lines @array|string
lines inFile @getlines
*maxLen @int 0
*rusMaxLen @int 0
*maxRes @string ""
*startTime @int @time:time
*counter @int 0
for *s1 in lines
for *s2 in lines
counter + 1
if s1 s2
continue
*len1 @int @size s1
*len2 @int @size s2
if < len1 maxLen
continue
if < len2 maxLen
continue
*len @int 0
*res @string
res len @check_combine s1 s2
if res s1
continue
if res s2
continue
if > len maxLen
maxLen = len
rusMaxLen = maxLen / 2
*delta @int @time:time - startTime
*deltaStr @string s2 @erase len
maxRes = deltaStr + " - " s1 "-" s2
@print* counter "\t прошло: " delta " секунд, длина: " rusMaxLen ", " maxRes "\n"
@print* "\n\nРезультат: " rusMaxLen ", " maxRes "\n"
*delta @int @time:time - startTime
@print* "Полное время переборов: " delta
inFile @close
По длине он 1673 символа против 2457 на C++. То есть примерно в 1,5 раза короче. При том, можно ещё сократить, если сделать простейший вывод типов в конструкторе, а также открыть доступ к длине строки через переменную (это будет плохо с точки зрения инкапсуляции, но для маленьких одноразовых программ такое оправдано).
Но это не потому что C++ плохой. Для больших многоразовых программ он лучше. Если команда работает - он лучше, хотя хуже, чем Java и C#. Для маленьких одноразовых программ лучше были Перл и Питон, если нет требований по времени. Но Перл теперь заменяют на Раку, а Питон переусложнили.
Говорили что Перл старый, ни на что не способный язык. Проверим? (комментарий)