Skip to content

Instantly share code, notes, and snippets.

#overall:
#gmp
#mpfr
#mpc
#isl
#binutils
#mingw-w64
#gcc
#zlib (optional, only native)
@Lovesan
Lovesan / IEnumerable.lisp
Created October 10, 2023 14:26
IEnumerable and IReadOnlyCollection<> implementation using bike library
(define-dotnet-callable-class (sequence-enumerator
(:interfaces (IEnumerator :object))) ()
"An implementation of IEnumerator<object> for CL sequences."
(parent :initform nil :initarg :parent :reader se-parent)
(seq :initform '() :initarg :sequence :reader se-sequence)
(idx :initform -1 :reader se-index)
(:property current :object :initform nil :reader se-current
:documentation "An element at current enumerator index")
(:defmethod move-next :bool ()
@Lovesan
Lovesan / cbrf.lisp
Created January 25, 2024 21:04
Exchange rates & converter using russian central bank API
;;;; -*- Mode: lisp; indent-tabs-mode: nil -*-
;;; Copyright (C) 2024, Dmitry Ignatiev <lovesan.ru at gmail.com>
;;; Permission is hereby granted, free of charge, to any person
;;; obtaining a copy of this software and associated documentation
;;; files (the "Software"), to deal in the Software without
;;; restriction, including without limitation the rights to use, copy,
;;; modify, merge, publish, distribute, sublicense, and/or sell copies
;;; of the Software, and to permit persons to whom the Software is
@Lovesan
Lovesan / excel-interop.lisp
Created February 22, 2024 21:45
Excel interop using bike library
(eval-when (:compile-toplevel :load-toplevel :execute)
(unless (find-package 'bike)
(ql:quickload 'bike)))
(named-readtables:in-readtable bike:bike-syntax)
(bike:use-namespace 'System)
;; The below is required to overcome internal bike optimizations related to property retrieval,
;; which utilize Type.GetProperty internally, which does not work for COM objects.
;; Note that you should also use bike:reflection-invoke instead of invoke, for the same reasons.