Es ist Zeit. Rockstar 2: „Die schwierige zweite Version“
Der Build-Prozess
Das Erstellen von Codewithrockstar.com funktioniert folgendermaßen:
Rockstar-Engine bauen und testen
WENN DAS FUNKTIONIERT:
Build-Windows-Binärdatei
build-macos-binary
build-and-deploy-website * Lädt die Linux-Binärdatei Rockstar WASM aus Schritt 1 herunter * Lädt die Windows- und macOS-Binärdateien aus Schritt 2 und 3 herunter * Erstellt die Jekyll-Site
Im Entwicklungsmodus verwende ich symbolische Verzeichnisverknüpfungen zwischen den verschiedenen Teilen des Projekts. Durch die Neuerstellung der .NET-Lösung wird der WASM-Interpreter neu erstellt, den Jekyll als /wasm/**
sehen kann, und eine Site-Neuerstellung auslösen. Alle Rockstar-Codebeispiele sind Teil sowohl des Rockstar.Test
.NET-Testsuite-Projekts als auch des codewithrockstar.com
Site:
> cd codewithrockstar.com
> mklink /d wasm ..StarshipRockstar.WasmbinDebugnet8.0-browser
> mklink /d examples ..StarshipRockstar.Testprogramsexamples
codewithrockstar.com
/wasm --> [ /Starship/Rockstar.Wasm/bin/Debug/net8.0-browser ]
/examples --> [ /Starship/Rockstar.Test/programs/examples ]
/index.html
/example.md
/js
/rockstar-editor.js (from codemirror)
Funktionelles Curry
output
function call: product
function call: sum
number: 2
number: 4
function call: sum
number: 5
number: 6
Also: product(sum(2,4,sum(5,6))
muss basierend auf der Arität der Funktionen in product(sum(2,4),sum(5,6))
übersetzt werden
Also muss sum(2,4,sum(5,6))
sum(2,4)
auswerten und den Ausdruck sum(5,6)
im Bucket belassen
Dann product(sum(2,4)