- 1
- 2
- 3
- 4
- 5
- 6
- 7
function main() {
let arr = [1, 2, 3];
for (const v of arr.map(x => x + 1)) print(v);
print("done.");
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
function main() {
let arr = [1, 2, 3];
for (const v of arr.map(x => x + 1)) print(v);
print("done.");
}
Для тех кто не понял предыдущий пример.. я упростил для вас :)
0
#define OPCODEFORMAT_CASE(opcode, format) case opcode: return format; break
inline OpcodeFormat getOpcodeFormat(Opcode opcode)
{
switch (opcode)
{
OPCODEFORMAT_CASE(NOP , OPCODE);
OPCODEFORMAT_CASE(MOV_RR , OPCODE_RR);
OPCODEFORMAT_CASE(MOV_RC , OPCODE_RC);
OPCODEFORMAT_CASE(MOV_RM , OPCODE_RM);
OPCODEFORMAT_CASE(MOV_MR , OPCODE_MR);
OPCODEFORMAT_CASE(MOV_MC , OPCODE_MC);
OPCODEFORMAT_CASE(MOV_MM , OPCODE_MM);
OPCODEFORMAT_CASE(ADD , OPCODE_RR);
OPCODEFORMAT_CASE(SUB , OPCODE_RR);
OPCODEFORMAT_CASE(ADD_C , OPCODE_RC);
OPCODEFORMAT_CASE(SUB_C , OPCODE_RC);
OPCODEFORMAT_CASE(MUL , OPCODE_RR);
OPCODEFORMAT_CASE(DIV , OPCODE_RR);
OPCODEFORMAT_CASE(MUL_C , OPCODE_RC);
OPCODEFORMAT_CASE(DIV_C , OPCODE_RC);
OPCODEFORMAT_CASE(LEA , OPCODE_RM);
OPCODEFORMAT_CASE(INC , OPCODE_R);
OPCODEFORMAT_CASE(DEC , OPCODE_R);
OPCODEFORMAT_CASE(INT , OPCODE_C8);
OPCODEFORMAT_CASE(CMP_RC , OPCODE_RC);
OPCODEFORMAT_CASE(JMP , OPCODE_C);
OPCODEFORMAT_CASE(JZ , OPCODE_C);
OPCODEFORMAT_CASE(JNZ , OPCODE_C);
OPCODEFORMAT_CASE(JG , OPCODE_C);
OPCODEFORMAT_CASE(JNG , OPCODE_C);
OPCODEFORMAT_CASE(JGZ , OPCODE_C);
OPCODEFORMAT_CASE(JL , OPCODE_C);
OPCODEFORMAT_CASE(CALL , OPCODE_C);
OPCODEFORMAT_CASE(PUSH_R , OPCODE_R);
OPCODEFORMAT_CASE(PUSH_C , OPCODE_C);
OPCODEFORMAT_CASE(PUSH_C8 , OPCODE_C8);
OPCODEFORMAT_CASE(POP_R , OPCODE_R);
OPCODEFORMAT_CASE(POP , OPCODE);
OPCODEFORMAT_CASE(POP8 , OPCODE);
OPCODEFORMAT_CASE(POP_M8 , OPCODE_M);
OPCODEFORMAT_CASE(POP_M16 , OPCODE_M);
OPCODEFORMAT_CASE(OUT_M8 , OPCODE_MC);
OPCODEFORMAT_CASE(OUT_M16 , OPCODE_MC);
OPCODEFORMAT_CASE(OUT_C8 , OPCODE_CC8);
OPCODEFORMAT_CASE(OUT_C16 , OPCODE_CC);
OPCODEFORMAT_CASE(OUT_R , OPCODE_RC);
OPCODEFORMAT_CASE(IN_R , OPCODE_RC);
OPCODEFORMAT_CASE(IN_M8 , OPCODE_MC);
OPCODEFORMAT_CASE(IN_M16 , OPCODE_MC);
OPCODEFORMAT_CASE(RET , OPCODE);
default: return (OpcodeFormat)0xFF; break;
}
}
#undef OPCODEFORMAT_CASE
отрефакторил
+1
function test() {
const ws = new WebSocket('ws://127.0.0.1:445');
ws.addEventListener('close', event =>
console.log('event.code = ', event.code, '; event.reason = ', event.reason)
);
ws.close(3500, 'some reason');
}
test();
Кто угадает значения полей event.code и event.reason — тому два нихуя.
Кто угадает значение одного из полей — тому одно нихуя.
0
function main() {
let arr = [1, 2, 3];
const it =
(
function* iter() {
for (const v of arr)
yield ((x: typeof v) => x + 1)(v);
}
)();
for (const v of it) print(v);
print("done.");
}
продолжаем говнокодить... т.е. генерировать жуткое.. г-но :) ну как вам такой код? слабо?
0
%% Note: set and unset are not thread-safe.
-spec set(key(), value()) -> ok.
set(Key, Value) ->
case ets:lookup(?status_tab, Key) of
[{_, {set, _OldValue}}] ->
ets:insert(?status_tab, {Key, {set, Value}});
[{_, {unset, Pid}}] ->
MRef = monitor(process, Pid),
Pid ! {set, Value},
receive
{'DOWN', MRef, _, _, _} -> ok
end;
[] ->
case ets:insert_new(?status_tab, {Key, {set, Value}}) of
true ->
ok;
false ->
set(Key, Value)
end
end,
ok.
-spec unset(key()) -> ok.
unset(Key) ->
case ets:lookup(?status_tab, Key) of
[{_, {set, _OldValue}}] -> ets:delete(?status_tab, Key);
_ -> ok
end,
ok.
-spec read(key()) -> value().
read(Key) ->
case read_or_wait(Key) of
{set, Value} ->
Value;
{wait, MRef} ->
receive
{'DOWN', MRef, _, _, {cvar_set, Value}} ->
Value;
{'DOWN', MRef, _, _, noproc} ->
read(Key)
end
end.
-spec read_or_wait(key()) -> {set, value()} | {wait, reference()}.
read_or_wait(Key) ->
case ets:lookup(?status_tab, Key) of
[] ->
{Pid, MRef} = spawn_monitor(?MODULE, waker_entrypoint, [Key, self()]),
receive
{Pid, proceed} ->
{wait, MRef};
{'DOWN', MRef, _, _, Reason} ->
cvar_retry = Reason,
read_or_wait(Key)
end;
[{_, {set, Val}}] ->
{set, Val};
[{_, {unset, Pid}}] ->
{wait, monitor(process, Pid)}
end.
-spec waker_entrypoint(key(), pid()) -> no_return().
waker_entrypoint(Key, Parent) ->
case ets_insert_new({Key, {unset, self()}}) of
false ->
exit(cvar_retry);
true ->
Parent ! {self(), proceed},
receive
{set, Value} ->
ets_insert({Key, {set, Value}}),
exit({cvar_set, Value})
end
end.
0
ДокОбъект = ДокСсылка.ПолучитьОбъект();
ДокОбъект.ОбменДанными.Загрузка = Истина;
ДокОбъект.ПометкаУдаления = Истина;
ДокОбъект.Записать();
0
function* map<T, R>(a: T[], f:(i: T) => R)
{
for (const v of a) yield f(v);
}
function main()
{
let count = 0;
for (const v of map([1, 2, 3], (i) => { count++; return i + 1; }))
{
print(v);
}
assert(count == 3);
}
а ты, а ты так можешь на своем говно-с++ компиляторе ваять?
0
Пиздец-оффтоп #42
#12: https://govnokod.ru/27184 https://govnokod.xyz/_27184
#13: https://govnokod.ru/27286 https://govnokod.xyz/_27286
#14: https://govnokod.ru/27298 https://govnokod.xyz/_27298
#15: https://govnokod.ru/27322 https://govnokod.xyz/_27322
#16: https://govnokod.ru/27328 https://govnokod.xyz/_27328
#17: https://govnokod.ru/27346 https://govnokod.xyz/_27346
#18: https://govnokod.ru/27374 https://govnokod.xyz/_27374
#19: https://govnokod.ru/27468 https://govnokod.xyz/_27468
#20: https://govnokod.ru/27469 https://govnokod.xyz/_27469
#21: https://govnokod.ru/27479 https://govnokod.xyz/_27479
#22: https://govnokod.ru/27485 https://govnokod.xyz/_27485
#23: https://govnokod.ru/27493 https://govnokod.xyz/_27493
#24: https://govnokod.ru/27501 https://govnokod.xyz/_27501
#25: https://govnokod.ru/27521 https://govnokod.xyz/_27521
#26: https://govnokod.ru/27545 https://govnokod.xyz/_27545
#27: https://govnokod.ru/27572 https://govnokod.xyz/_27572
#28: https://govnokod.ru/27580 https://govnokod.xyz/_27580
#29: https://govnokod.ru/27738 https://govnokod.xyz/_27738
#30: https://govnokod.ru/27751 https://govnokod.xyz/_27751
#31: https://govnokod.ru/27754 https://govnokod.xyz/_27754
#32: https://govnokod.ru/27786 https://govnokod.xyz/_27786
#33: https://govnokod.ru/27801 https://govnokod.xyz/_27801
#34: https://govnokod.ru/27817 https://govnokod.xyz/_27817
#35: https://govnokod.ru/27822 https://govnokod.xyz/_27822
#36: https://govnokod.ru/27826 https://govnokod.xyz/_27826
#37: https://govnokod.ru/27827 https://govnokod.xyz/_27827
#38: https://govnokod.ru/27833 https://govnokod.xyz/_27833
#39: https://govnokod.ru/27862 https://govnokod.xyz/_27862
#40: https://govnokod.ru/27869 https://govnokod.xyz/_27869
#41: https://govnokod.ru/27933 https://govnokod.xyz/_27933
0
IT Оффтоп #145
#115: https://govnokod.ru/27665 https://govnokod.xyz/_27665
#116: https://govnokod.ru/27671 https://govnokod.xyz/_27671
#117: https://govnokod.ru/27675 https://govnokod.xyz/_27675
#118: https://govnokod.ru/27685 https://govnokod.xyz/_27685
#119: https://govnokod.ru/27701 https://govnokod.xyz/_27701
#120: https://govnokod.ru/27703 https://govnokod.xyz/_27703
#121: https://govnokod.ru/27710 https://govnokod.xyz/_27710
#122: https://govnokod.ru/27728 https://govnokod.xyz/_27728
#123: https://govnokod.ru/27729 https://govnokod.xyz/_27729
#124: https://govnokod.ru/27730 https://govnokod.xyz/_27730
#125: https://govnokod.ru/27732 https://govnokod.xyz/_27732
#126: https://govnokod.ru/27733 https://govnokod.xyz/_27733
#127: https://govnokod.ru/27737 https://govnokod.xyz/_27737
#128: https://govnokod.ru/27742 https://govnokod.xyz/_27742
#129: https://govnokod.ru/27747 https://govnokod.xyz/_27747
#130: https://govnokod.ru/27755 https://govnokod.xyz/_27755
#131: https://govnokod.ru/27766 https://govnokod.xyz/_27766
#132: https://govnokod.ru/27790 https://govnokod.xyz/_27790
#133: https://govnokod.ru/27828 https://govnokod.xyz/_27828
#134: https://govnokod.ru/27834 https://govnokod.xyz/_27834
#135: https://govnokod.ru/27839 https://govnokod.xyz/_27839
#136: https://govnokod.ru/27845 https://govnokod.xyz/_27845
#137: https://govnokod.ru/27857 https://govnokod.xyz/_27857
#138: https://govnokod.ru/27867 https://govnokod.xyz/_27867
#139: https://govnokod.ru/27887 https://govnokod.xyz/_27887
#140: https://govnokod.ru/27900 https://govnokod.xyz/_27900
#141: https://govnokod.ru/27914 https://govnokod.xyz/_27914
#142: https://govnokod.ru/27942 https://govnokod.xyz/_27942
#143: https://govnokod.ru/27960 https://govnokod.xyz/_27960
#144: https://govnokod.ru/27972 https://govnokod.xyz/_27972
0
std::vector<Token> Tokenizer::coreTokenize(std::string src)
{
const boost::escaped_list_separator<char> els("\\"s, " \n\t"s, "\";");
boost::replace_all(src, "\"", R"("\")");
boost::replace_all(src, ";", ";\\;");
boost::replace_all(src, "\\n", "\\\\n");
boost::replace_all(src, "\n", "\\n");
const boost::tokenizer tok(src, els);
std::vector<Token> tokens;
std::ranges::copy(tok, std::back_inserter(tokens));
bool (std::string::*starts_with) (char const) const = &std::string::starts_with;
std::remove_if(tokens.begin(), tokens.end(), boost::bind(starts_with, boost::placeholders::_1, ';'));
return tokens;
}
захотел добавить в свой компилятор подсветку ошибок. пришлось накостылить.