(*)~changed up makefile recipes, cleaned up README

This commit is contained in:
2023-06-25 07:38:39 +01:00
parent 6d504da381
commit dc090ace5f
4 changed files with 30 additions and 19 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
*.out
*.fasl

View File

@@ -1,11 +1,14 @@
CC=clang++
CFLAGS=-pedantic -Wall -ggdb
CFLAGS=-pedantic -Wall -ggdb -fsanitize=address
VFLAGS=--show-leak-kinds=all --leak-check=full
OUT=
$(OUT): $(OUT).cpp
$(OUT).out: $(OUT).cpp
$(CC) $(CFLAGS) $^ -o $@
.PHONY: memcheck
memcheck: $(OUT)
valgrind $(VFLAGS) ./$^;
.PHONY: run
run: $(OUT).out
./$^
.PHONY: clean
rm -v *.out;

View File

@@ -1,7 +1,6 @@
#+title: Algorithms
#+author: Aryadev Chavali
Common algorithms in C/C++/Python depending on which one is the
nicest/makes the most sense to use. This will include random maths
stuff as well, such as making supporting mechanisms for, say, the use
of group semantics.
Common algorithms and data structures, written in any language I
want. Currently there's an implementation for binary trees and singly
linked lists in C++.

View File

@@ -107,26 +107,33 @@ int main(void)
std::cout << lst << std::endl;
puts("Reverse list again...");
printf("Map list with f(x) = 2x: ");
map<int, int>(lst = reverse(lst), [](int x) {
return x * 2;
});
map<int, int>(lst = reverse(lst),
[](int x)
{
return x * 2;
});
std::cout << lst << std::endl;
puts("Reverse map...");
map<int, int>(lst, [](int x) {
return x / 2;
});
map<int, int>(lst,
[](int x)
{
return x / 2;
});
printf("Sum all numbers in list: ");
std::cout << reduce<int>(
lst,
[](int a, int b) {
[](int a, int b)
{
return a + b;
},
0)
<< std::endl;
printf("Print all even numbers 1..10: ");
auto evens = filter<int>(lst, [](int a) {
return a % 2 == 0;
});
auto evens = filter<int>(lst,
[](int a)
{
return a % 2 == 0;
});
std::cout << evens << std::endl;
delete lst;
delete evens;