Skip to content

Instantly share code, notes, and snippets.

View olexale's full-sized avatar
🎯
Focusing

Oleksandr Leushchenko olexale

🎯
Focusing
View GitHub Profile
@olexale
olexale / maybe_dart.dart
Created January 3, 2022 19:10
Sample for the "Dart Functors, Applicatives, And Monads In Pictures" article
void main() {
// Functor
num plus3(num x) => x + 3;
print(Just(2).fmap(plus3)); // Just 5
print(Nothing<num>().fmap(plus3));
print([1,2,3].map((x) => x + 2)); // (3, 4, 5)
final foo = fmap((x) => x + 3, (x) => x + 2);
@olexale
olexale / main.dart
Created May 27, 2023 11:03
scheme dart 1
Future<void> main() async {
// final program = '(define x 42)';
final program = '(begin (define circle-area (lambda (r) (* pi (* r r)))) (circle-area 10))';
print(parse(program));
}
dynamic parse(String program) => parseTokens(tokenize(program));
List<String> tokenize(String program) => program
.replaceAll('(', ' ( ')
@olexale
olexale / main.dart
Created May 27, 2023 13:26
scheme dart 2
import 'dart:math' as math;
Future<void> main() async {
final program = '(begin (define circle-area (lambda (r) (* pi (* r r)))) (circle-area 10))';
print(eval(parse(program), standardEnv));
}
dynamic parse(String program) => parseTokens(tokenize(program));
List<String> tokenize(String program) => program