No description
Find a file
2025-07-03 01:42:02 +08:00
.github/ISSUE_TEMPLATE feat(gh): Update issue templates 2024-03-26 16:46:25 +08:00
.vscode fix: more updates to newer nim versions 2025-07-03 01:33:39 +08:00
src fix(ptrMath): don't export 2025-07-03 01:41:21 +08:00
tests fix: more updates to newer nim versions 2025-07-03 01:33:39 +08:00
.gitignore feat: version 0.1.0 2024-03-25 13:45:39 +08:00
LICENSE feat: version 0.1.0 2024-03-25 13:45:39 +08:00
README.md chore: formatting and tidying up 2024-03-31 01:51:33 +08:00
sweet.nimble chore(bump): 0.1.3 2025-07-03 01:41:38 +08:00

Sweet: 🍬 General syntactic sugar

Sweet is a library that provides syntactic sugar so that it's easier to write code, especially if you come from another programming language!

Suggestions

You can submit suggestions on GitHub.

Examples

import sweet
import std/[math, complex]
import options

assert false == !true
assert !true == not true
assert !1 == false
assert !!PI
assert !""
assert !!"hai"

var a = 1
assert (a := 2) == 2
assert a == 2
assert ++a == 3
assert --a == 2
assert +< a == 2  # same as `a++` in C/++
assert a == 3
assert -< a == 3
assert a == 2


const s = @[0,1,2,3]
assert s[0..-1] == s
assert s[1..-2] == @[1, 2]

type A = object of RootObj
let hai = A()
assert hai is A
assert isinstance(hai, A)
assert (hai.instanceof A) # unfortunately we cannot fully mimic JavaScript

let a = some "hai"
let b = none(string)
assert (a ?? "bai") == "hai"
assert b |? "bai" == "bai"
assert a$.len |? 5 == 3  # Only $ has a higher precedence than + % \ /
assert (b?.len) |? 5 == 5

assert 0b11 << 1 == 0b110
assert 0b10 >> 1 == 0b1
assert 3 // 2 == 1

assert 0b11111100 & 0b01010101 == 0b01010100
assert true && true
assert true || false
assert !(false || false)
assert 0b10101010 | 0b01010101 == 0b11111111

assert "Hello, " + "World!" == "Hello, World!"
assert 'H' + "ello, World!" == "Hello, World!"
assert "hai" + @["bai"] == @["hai", "bai"]
assert @["hai"] + @["bai"] == @["hai", "bai"]

assert almostEqual[float64](complex(10.0, 20.0), complex(10.000_000_000_00_001, 20.000_000_000_00_001))
assert polar(10.0, 20.0) == polar(complex(10.0, 20.0))