Skip to content

Instantly share code, notes, and snippets.

View SimonHauguel's full-sized avatar
🐈
Meow

Simon Hauguel SimonHauguel

🐈
Meow
  • Capgemini Engineering
  • Toulouse, France
View GitHub Profile
@SimonHauguel
SimonHauguel / AOC23.py
Last active December 4, 2023 22:15
Advent Of Code 2023 as a single expression
_ = (lambda sys, functools, operator:(lambda parse_file:(lambda *all_solutions: [print(f"\n\nDAY{i+1} PART1 : {s(parse_file(i+1))[0]()}\nDAY{i+1} PART2 : {s(parse_file(i+1))[1]()}") for i, s in enumerate(all_solutions)] if ("all" in sys.argv) else (lambda i: print(f"\n\nDAY{i} PART2 : {all_solutions[i-1](parse_file(i))[0]()}\nDAY{i} PART1 : {all_solutions[i-1](parse_file(i))[1]()}"))(int(sys.argv[-1])))(lambda parsed_input:(lambda: functools.reduce(lambda acc, v: int(v[0] + v[-1]) + acc, map(lambda s: "".join(filter(str.isdigit, s)), parsed_input), 0), lambda: (lambda map_parse: functools.reduce(lambda acc, v: (lambda parsed_res: int(parsed_res[0] + parsed_res[-1]) + acc)(functools.reduce(lambda acc, v: ("", "", "", acc[3] + v) if v.isdigit() else(v, v, v, acc[3] + map_parse[(acc[0]+v)[-3:]]) if (acc[0]+v)[-3:] in map_parse else(v, v, v, acc[3] + map_parse[(acc[1]+v)[-4:]]) if (acc[1]+v)[-4:] in map_parse else(v, v, v, acc[3] + map_parse[(acc[2]+v)[-5:]]) if (acc[2]+v)[-5:] in map_parse else((acc[0]+v)[-3:],
@SimonHauguel
SimonHauguel / dest_assign_python.py
Created August 11, 2023 15:31
(JS destructuring assignment)-like in Python
# It "works"
from __future__ import annotations
import operator
@lambda x: x() # Since 3.10, maybe ? Works at least in 3.11
class __annotations__:
def __setitem__(self, key, value):
command,target = value.replace(" ", "").split("@")
if command == "UNPACK":
@SimonHauguel
SimonHauguel / lc.cpp
Created July 31, 2022 18:02
Lambda Calcul Type Level C++
struct O {};
template <class T> struct S;
struct TTrue {};
struct TFalse {};
using _0 = O;
using _1 = S<_0>;
using _2 = S<_1>;
using _3 = S<_2>;
@SimonHauguel
SimonHauguel / SingleExpressionSnake.py
Created January 10, 2022 23:05
Snake Game as a single expression
_ = (lambda curses, random: lambda SOUTH, NORTH, WEST, EST, FRUIT, SNAKE_BODY, BORDER_TOP_BOTTOM, BORDER_LEFT_RIGHT:(lambda Snake: (lambda SnakeView: curses.wrapper(lambda screen: (lambda view: (not curses.curs_set(0)) or [None for _ in iter(view.actualize_and_catch_events, -1)])(SnakeView(Snake(), screen))))(type("SnakeView", (), {"__init__": lambda self, game, screen: setattr(self, "game_state", game) or setattr(self, "screen", screen) or screen.nodelay(True) or screen.resize(15, 40),"actualize_and_catch_events":lambda self:(lambda actual_event:(self.screen.erase() or ((-1 if self.game_state.next_step(actual_event - 258) == -1 else None) if (258 <= actual_event <= 261) else (-1 if self.game_state.next_step(None) == -1 else None))))(self.screen.getch()) or ([(self.screen.addch(0, i, BORDER_TOP_BOTTOM), self.screen.addch(9, i, BORDER_TOP_BOTTOM)) for i in range(0, 40)] and [(self.screen.addch(i, 0, BORDER_LEFT_RIGHT), self.screen.addch(i, 39, BORDER_LEFT_RIGHT)) for i in range(1, 10)] and [self.screen.addch(i
@SimonHauguel
SimonHauguel / htmlmacro.js
Last active November 13, 2021 21:43
Write macros directly into your html code
// I'm not a web mad scientist developer, but use `defer` can be a good thing
function isNotNested(macroElement) {
let elementNode = macroElement;
while ((elementNode = elementNode.parentNode) != document) {
if (elementNode.className.split().includes("macro"))
return false
}
return true
}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE ExistentialQuantification #-}
import Data.Kind ( Type )
-- Z 'Set'
data Z :: Type where
P :: Z -> Z -- Predecessor Function