1.82K subscribers
3.08K photos
121 videos
15 files
3.42K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
#rust #article #abnormalprogramming

Читателям моего блога, вероятно, знакомо такое понятие, как квайн: программа, организованная таким образом, что при запуске печатает собственный текст (буквальное обращение к файлу с исходником считается читерством).

Парочка наблюдений.
Для написания квайна на самом деле не требуется много выразительной силы языка.
Многие форматы для архивов являются фактически программами для восстановления исходных, несжатых, файлов, из серии инструкций, выполняемых интерпретатором — разархиватором.

Что из этого следует? Можно создать архивный аналог квайна: архив, который распаковывается в сам себя. В статье Zip Files All The Way Down рассказывается о том, как этого можно достичь.
#prog #rust #rustlib #abnormalprogramming

analog-literals

assert_eq!(
analog_literal! { I----I }
+ analog_literal! { I------I },
analog_literal! { I----------I },
);


Поддерживаются также двухмерные и трёхмерные литералы (см. (а лучше не см.) документацию)
#prog #article #abnormalprogramming

McCarthy's Ambiguous Operator

Абьюз продолжений ради этого:

# amb will (appear to) choose values
# for x and y that prevent future
# trouble.
x = amb 1, 2, 3
y = amb 4, 5, 6

# Ooops! If x*y isn't 8, amb would
# get angry. You wouldn't like
# amb when it's angry.
amb if x*y != 8

# Sure enough, x is 2 and y is 4.
puts x, y
#bash #abnormalprogramming (кажется, эти два хештега можно совместить)
#prog #c #abnormalprogramming

Как сказал один из комментаторов: "Finally, Duff's undevice"
#game #abnormalprogramming #article

Simulating Rule 110 in Opus Magnum

Ввиду того, что симуляция сколько-нибудь большого пространства в игре затруднена, решение делается для закольцованного поля в 6 клеток. Но даже так это очень впечатляет.