- 1
#!/usr/blin/perl
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−111.4
#!/usr/blin/perl
+54
if (!isset($_GET['month'])) {
...
}
else {
if (isset($_POST['submit_fin'])) {
...
}
}
+1
.org 22h
dw @vbi
.org 80h
bpos: db 0h 0h
vector: db 2h 1h
process:
push %a
push %b
mov %a [@bpos] ; {h:x, l:y} ;
mov %b [@vector] ; {h:dx, l:dy} ;
add %ah %bh
add %al %bl
cmp %ah 11h
jng @.skip_xoverflow_handle
cmp %ah 14h
jg @.overflow_left
mov %ah 11h
jmp @.xoverflow_finally
.overflow_left:
mov %ah 0h
.xoverflow_finally:
neg %bh
.skip_xoverflow_handle:
cmp %al 5Ch
jng @.skip_yoverflow_handle
cmp %al 60h
jg @.overflow_up
mov %al 5Bh
jmp @.yoverflow_finally
.overflow_up:
mov %al 1h
.yoverflow_finally:
neg %bl
.skip_yoverflow_handle:
mov [@bpos] %a
mov [@vector] %b
pop %b
pop %a
ret
cls:
push %a
push %b
mov %a 3A98h
.loop:
mov [%a + @T1] 0000h
sub %a 2h
jnz @.loop
pop %b
pop %a
ret
render:
push %a
push %b
push %c
mov %a [@bpos] ; {h:x, l:y} ;
mov %b %al
mul %b 12h
add %b %ah
add %b @T1
mov %c 8h
.loop:
movb [%b] FFh
add %b 12h
dec %c
jnz @.loop
pop %c
pop %b
pop %a
ret
start:
mov %sp FFFFh
outb 20h 1h
outb 21h 16h
out 22h @T1
mov %al 1h
int 10h
.loop:
jmp @.loop
vbi:
call @cls
call @render
call @process
ret
.org 1000h
T1:
решил пойти по накатанному пути и добавил видеоконтроллер, пока только монохромная битовая карта 144x100, но большего и не надо
сабж выводит на экран что отпрыгивает от стен, простое умножение компонента вектора на -1
+1
class C {
_length: number;
constructor() {
this._length = 10;
}
get length() {
return this._length;
}
set length(value: number) {
this._length = value;
}
}
function main() {
const c = new C();
print(c.length);
c.length = 20;
print(c.length);
delete c;
print("done.");
}
пока вы тут балаболили я тут наговнокодил "property" или "accessors"
+2
(set-logic UF)
; https://smtlib.cs.uiowa.edu/logics.shtml
; UF for the extension allowing free sort and function symbols
(set-option :produce-proofs true)
(declare-sort M_list)
(declare-fun m_node (M_list M_list) M_list)
; один хер какой порядок, можно переписать (a, b) на (b, a)
(assert
(forall ( (a M_list) (b M_list) )
(=
(m_node a b)
(m_node b a)
)
)
)
; если есть (a (b c)) то можно переписать на (с (a b))
(assert
(forall ( (a M_list) (b M_list) (c M_list) )
(=
(m_node a (m_node b c) )
(m_node c (m_node a b) )
)
)
)
; Можно создавать или удалять повторы, (a a) <=> a
(assert
(forall ( (a M_list))
(=
(m_node a a)
a
)
)
)
; Чтоб узнать, выводима ли такая-то хернь
(declare-fun m_node_select (M_list M_list) Bool)
(assert
(forall ( (a M_list) (b M_list) )
(m_node_select
a (m_node a b)
)
)
)
; проверяем, можно ли сконструировать (a a) из (c ((b d) a))
(assert
(not (forall ( (a M_list) (b M_list) (c M_list) (d M_list) )
(m_node_select
(m_node a a)
(m_node c (m_node (m_node b d) a) )
)
))
)
(check-sat)
(get-proof)
Вот вам немного гомоикон SMT-солвера. Эта вот хренотень сама доказывает, не то что какой-то там Coq.
Понятно что по тем вот говноправилам можно чтоб всплыло 'a' и потом его удвоить "(a a) <=> a"
потом через m_node_select вытащить этот дубликат
+2
Оффтоп словаря терминов говнокода.
Для всего, что хотели ответить на комментарий из http://govnokod.ru/26478.
Поддержим чистоту расы словаря!
0
Тестовый код для тестирования парсера.
Не обращайте внимания.
int i = 5;
i += ++i + ++i;
def f():
try:
f()
finally:
f()
f()
mov bp, 0cf8h
lea esi, IOForEEPROM-@7[esi]
mov edi, 8000384ch
mov dx, 0cfeh
cli
call esi
mov di, 0058h
dec edx ; and al,0fh
mov word ptr (BooleanCalculateCode-@10)[esi], 0f24h
call esi
lea ebx, EnableEEPROMToWrite-@10[esi]
mov eax, 0e5555h
mov ecx, 0e2aaah
call ebx
mov byte ptr [eax], 60h
push ecx
loop $
+1
#include <cstdio>
class tag;
template<class>
struct type { friend constexpr auto get(type); };
template<class TKey, class TValue>
struct set { friend constexpr auto get(TKey) { return TValue{}; } };
void foo() { // never called
if constexpr(false) { // never true
if (false) { // never true
constexpr auto call = [](auto value) { std::printf("called %d", value); };
void(set<type<tag>, decltype(call)>{});
}
}
}
int main() {
get(type<tag>{})(42); // prints called 42
}
https://twitter.com/krisjusiak/status/1186363017329594368
Какой C++20 )))
0
#include <stdio.h>
struct Gost {
int x = 42;
};
int main () {
Gost gst;
printf("%d\n", gst); // 42
}
http://ideone.com/fB26cs
Уб ли это?
+2
// https://habr.com/ru/post/466985/
// о каррировании в крестоговне
// По сути это каррирующее говно просто складывает куда-то хуйню, а потом целиком ее в функцию призывает.
// Ну т.е. на Си можно написать дрисню вида
int shit(int a, int b, int c, int d)
{
return a*(b+c*d);
}
// И вот каррирование такой дрисни это как если б я сделал структуру
struct shit_arguments
{
int a;
int b;
int c;
int d;
};
// И потом бы с конца заполнял это говно
struct shit_arguments;
shit_arguments.d = 13;
shit_arguments.c = 666;
shit_arguments.b = 1488;
shit_arguments.a = 42;
// и при полном заполнении этого говна просто б вызвал функцию
// подставив туда накопившееся говно
int somecrap = shit(shit_arguments.a, shit_arguments.b, shit_arguments.c, shit_arguments.d);
// именно так эта крестовая дрисня и работает, она не может произвести частичное вычисление
// не может сделать функцию с частично вычисленной дрисней в ней на основе частично переданной хуйни
// если я например в функцию shit захочу частично подставить аргументы b,c,d как 1,2,3 то у меня не получится функции вида
int shit_b1_c2_d3(int a)
{
return a*(7); // 1+2*3 = 7
}
// Нихуя подобного не будет. А если нихуя подобного нет, нахуй это бесполезное дерьмо вообще надо?
// В крестах никак нельзя на основе каких-то готовых функций сгенерить
// видоизмененные функции с частично сделанными вычислениями
// Никакой нормальной рефлексии нет, просто какие-то тупые кривые костыли к сишечке налепили
// И это программисты?