Skip to content

Instantly share code, notes, and snippets.

@dlbas
dlbas / add.lisp
Created March 3, 2021 12:16
Illustrates tail-recursion
(defun add (n)
(if (= n 0)
n
(+ n (add (- n 1)))
)
)
(defun add_optimized (n)
(defun iter (x acc)
(if (= x 0)
package main
import "fmt"
func foo(n int) (f1 func(int) int, f2 func(int) int) {
f1 = func(i int) int {
n += i
return n
}
f2 = func(i int) int {
@dlbas
dlbas / 2_1.c
Created November 10, 2019 16:32
//
// Created by daniel on 09/11/2019.
//
#include <gst/gst.h>
typedef struct _CustomData {
GstElement *pipeline;
GstElement *v4l2src;
GstElement *caps_filter1;
GstElement *decodebin;
sections_set = [
[[-0.35, 1], [1, 2], [3, 5], [4, 6], [7, 8]],
[[-4, 1], [3, 7], [8, 4]]
]
for sections in sections_set:
cur_final = 0
sections.sort(key=lambda x: x[0])
@dlbas
dlbas / guide.md
Last active May 9, 2019 09:34
Style guide by me

Нужно сделать так, чтобы код был читаем, конкретно:

  • оформление - мы не пишем код в jupyter notebook'ах, для этого лучше использовать pycharm, там можно удобно дебажить, а еще он умеет просто кучу всего. Для лучшего понимания оформления кода лучше ознакомиться с https://www.python.org/dev/peps/pep-0008/ (если хотите писать на питоне - очень рекомендуется к прочтению, будущие коллеги вас сразу полюбят), уверен, что есть где-то даже на русском
  • написание функций: лучше делать функции "чистыми", т.е. так чтобы они не изменяли значения своих аргументов, а также использовали только их для вычисления своего результата - это выглядит ужасно, к тому же приводит к багам, которые очень трудно обнаружить. Если функция не должна ничего возвращать, не следует возвращать 0 - все функции по умолчанию возвращают None, этого достаточно.
  • Аргументы функции: если у функции есть куча аргументов, то лучше сделать некоторые из них со значениями по-умолчанию - это избавит вызывающего от мучительного процесса придумывания
@dlbas
dlbas / main.cpp
Created March 17, 2019 19:04
lamda functions
#include <iostream>
#include <functional>
#include <string>
#include <vector>
#include <map>
// 4 24 +2 + остаток от деления x на 5 +1 9 или 18
static int count, branch_count;
@dlbas
dlbas / main.cpp
Created March 17, 2019 17:54
regex c++
#include <iostream>
#include <string>
#include <set>
#include <stdio.h>
using namespace std;
bool FSM(char ch, int &S) {
switch (S) {
@dlbas
dlbas / order_matching.py
Last active February 16, 2019 15:26
Order matching
from collections import deque, namedtuple
from random import randint, random
class Order:
def __init__(self, sum, price, type):
self.sum = sum
self.price = price
self.type = type
self.status = 'new'
@dlbas
dlbas / main.cpp
Created February 8, 2019 12:35
stl lab 3
#include <iostream>
#include <set>
#include <vector>
#include <stdio.h>
#include <utility>
#include <numeric>
#include <algorithm>
using namespace std;
#include <iostream>
#include <map>
#include <stdio.h>
#include <utility>
#include <string>
#include <vector>
using namespace std;
int main() {