Skip to content

Instantly share code, notes, and snippets.

View qnikst's full-sized avatar
🐧
penguin?

Alexander Vershilov qnikst

🐧
penguin?
View GitHub Profile
@qnikst
qnikst / events.markdown
Last active September 15, 2023 17:13
Предстоящие Haskell события

Предстоящие события

  • 2023-09-26 Казань. Митап по функциональному программированию в Казани Регистрация

    Темы:

    — про software transactional memory (STM) и том, какие проблемы она решает;

— как работать с иммутабельными данными удобно и без боли.

@MMesch
MMesch / Python_Jupyter_Interaction.ipynb
Last active January 15, 2023 07:28
simple illustration of jupyter kernel messaging
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@voidlizard
voidlizard / special-olympics-resume.md
Last active November 6, 2017 03:37
Специальная олимпиада имени memcpy: послесловие

Надеюсь, что теперь эта специальная олимпиада затихнет, потому что код-победитель только на ~20% уступает простой записи нулей в /dev/null.

При ближайшем рассмотрении, задача оказалась на скорость вывода в stdout, т.е. так как вход у неё довольно маленький (~10K элементов), то парсить практически всё равно как -- на любом языке из использовавшихся.

После понимания этого, задача сводится к эффективной буферизации вывода и размышлениям, почему же нигде не работает стандартная буферизация --- по идее, она должна делать именно

Require Import Coq.Arith.Arith.
Require Import Coq.Lists.List.
Import ListNotations.
Lemma forw_rev_list_ind {A}
(P : list A -> Prop)
(Pnil : P [])
(Psingle : (forall a, P [a]))
(Pmore : (forall a b, forall xs, P xs -> P ([a] ++ xs ++ [b])))
(xs : list A)
@klapaucius
klapaucius / modles.md
Last active August 22, 2018 15:37
Детская болезнь "эмелизны" в хаскелизме.

Детская болезнь "эмелизны" в хаскелизме.

Приближается, пожалуй, самое значительное нововведение в хаскеле, со времен FC и превращения хаскеля из ML++ в недоΩmega: модули. Весь этот тектонический сдвиг, правда, остается незамеченным. Даже в Release notes об этом не упомянуто. Есть, только упоминание в руководстве пользователя Также, описания новой системы модулей можно найти на странице Backpack, но установить что из этого уже имплементировано можно только опытным путем.

Представление о ML-модулях можно составить из диссертации Дрейера (pdf)

@qnikst
qnikst / Pagination.hs
Created June 2, 2012 14:17
Simple but extensible paginator
{-# LANGUAGE OverloadedStrings #-}
-- |
-- author: Alexander V Vershilov <alexander.vershilov@gmail.com>
--
-- Module provides simple and extensible paginator widget that doesn't make any
-- assumptions on Route structure or type of page handling and doesn't load entities
-- that are not needed.
--
-- Basic usage
--
@qnikst
qnikst / Spaghetti.hs
Created April 18, 2012 23:30
Awful attempt to code gauss' method
gauss :: [[Double]] -> [Double]
gauss m = let (m',is) = gauss0 m
in order is $ gauss2 $ gauss1 m
gauss0 :: [[Double]] -> ([[Double]],[Int])
gauss0 m = let ( mt,is) = foldr choose (trns m,straight) straight
in (trns mt,is)
where choose k (mt,is) = let row = m !! (k-1)
q = (+) 1 $ fromJust $ elemIndex (maximum $ init $ drop (k-1) row) row
in (swap' k q mt, swap' k q is)