From fbe3d1ef84c477d0a33379d87130ab3a24854ca5 Mon Sep 17 00:00:00 2001 From: Funky Waddle Date: Mon, 24 Nov 2025 22:31:34 -0600 Subject: [PATCH] Update README.md file --- README.md | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 73 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 6662b89..f760e9d 100644 --- a/README.md +++ b/README.md @@ -54,35 +54,57 @@ Animal/Dog -> [Mammal, Domesticated] { #### Function declaration -##### Public function +##### Public function (+fn) ```waddle -+fn calculateArea(width: Integer, height: Integer) -> [Decimal] { ++fn calculateArea(Integer width, Integer height) -> [Integer] { rtn width.multiply(height); } ``` -##### Protected Function +##### Protected Function (fn) ```waddle -fn calculateArea(width: Integer, height: Integer) -> [Decimal] { +fn calculateArea(Integer width, Integer height) -> [Integer] { rtn width.multiply(height); } ``` -##### Private Function +##### Private Function (-fn) ```waddle --fn calculateArea(width: Integer, height: Integer) -> [Decimal] { +-fn calculateArea(Integer width, Integer height) -> [Integer] { + rtn width.multiply(height); +} +``` + +#### Default Values +```waddle +fn calculateArea(Integer width.default(0), Integer height.default(0)) -> [Integer] { rtn width.multiply(height); } ``` ##### Lambda expression ```waddle -areaCalculator = fn(width: Integer, height: Integer) -> [Decimal] { +areaCalculator = fn(Integer width, Integer height) -> [Integer] { rtn width.multiply(height); } ``` +#### Concurrency Function (async) +```waddle ++proc fetchData(String url) -> [String] { + rtn my.network.get(url); +} + +proc fetchData(String url) -> [String] { + rtn my.network.get(url); +} + +-proc fetchData(String url) -> [String] { + rtn my.network.get(url); +} +``` ### Error Handling +#### Try/Catch (attempt->[ok, error]) ```waddle result = riskyOperation().attempt { ok { @@ -101,6 +123,29 @@ result = riskyOperation().attempt { } } +``` +#### Custom error type declaration +```waddle +MathError { + message: String; + errorCode: Integer; +} +``` +#### Function with explicit error handling +```waddle ++fn divide(Integer a, Integer b) -> [Decimal] fails with MathError { + if (b.eq(0)) { + my.error.fail(MathError("Division by zero", 1)); + } + rtn a.divide(b); +} +``` + +### Resource Management / Context Management +```waddle +using DatabaseConnection db.set(connectionString) { + db.execute(query); +} ``` ### Iteration @@ -147,6 +192,27 @@ nums.each( ``` +### Boolean Expressions +#### Explicit Boolean Checks +```waddle +result = Boolean.and( + my.age.gt(18), + my.status.is(Verified) +); +``` +#### Object Method Boolean Checks +```waddle +if(my.age.gt(18).and(my.status.is(Verified))){ + my.age.gt(18), + my.status.is(Verified) +} +``` + +### Explicit Type Conversion +```waddle +String myString.set(my.number.set(42).as(String)); +``` + ## Type System ### Primitive Types