Files
lux/benchmarks/primes.lux
Brandon Lucas 2960dd6538 feat: add benchmarks and enhance LSP completions/hover
Benchmarks:
- Add fib, list_ops, primes benchmarks comparing Lux vs Node.js vs Rust
- Lux matches Rust performance and is 8-30x faster than Node.js
- Add docs/benchmarks.md documenting results

LSP improvements:
- Context-aware completions (module access vs general)
- Add List, String, Option, Result, Console, Math method completions
- Add type and builtin completions
- Hover now shows type signatures and documentation for known symbols
- Hover returns formatted markdown with code blocks

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-14 15:23:35 -05:00

25 lines
618 B
Plaintext

// Prime counting benchmark - count primes up to N
fn isPrime(n: Int): Bool = {
if n < 2 then false
else if n == 2 then true
else if n % 2 == 0 then false
else isPrimeHelper(n, 3)
}
fn isPrimeHelper(n: Int, i: Int): Bool = {
if i * i > n then true
else if n % i == 0 then false
else isPrimeHelper(n, i + 2)
}
fn countPrimes(n: Int): Int = {
let nums = List.range(2, n + 1)
let primes = List.filter(nums, fn(x: Int): Bool => isPrime(x))
List.length(primes)
}
fn main(): Unit = {
let count = countPrimes(10000)
Console.print("Primes up to 10000: " + toString(count))
}