Happy supports Number, String, and List types.
Booleans are represented as 1 (true) or
0 (false). '=>' in these docs represent the output.
They are NOT apart of the code
null => 0 true => 1 false => 0 pi => 3.14159... happy => ":)"
var x = 10 var name = "Happy" var list = [1, 2, 3] var isEqual = (5 == 5) var test = if 3 >= 1 then "math works" else "math broken"
Happy allows multiple statements on a single line using semicolons (;).
var a = 1; var b = 2; var c = 3 print(a + b + c)
var x = 1
if x == 10 then print("x is 10") elif x > 10 then print("x is greater") else print("x is less")
For Loop
for i = 0 to 6 then print(i) for i = 0 to 11 step 2 then print(i)
While Loop
var x = 0 while x < 5 then var x = x + 1
Built-in: print(), length(), fac()
Custom Functions
func add(x, y) -> x + y var result = add(3, 4)
[1, 2, 3] + 4 => [1, 2, 3, 4] [1, 2] + [3, 4, 5] => [1, 2, 3, 4, 5] [1, 2, 3] ! 0 => 1
"Hello World" "Text with \"quotes\"" "Text \n with newlines" "Happy" * 3 => "HappyHappyHappy"
Arithmetic: + - * /
Comparison: == != < > <= >=
Logical: not
func area_circle(r) -> pi*r*r func circumference_circle(r) -> 2*pi*r func area_triangle(b, h) -> (b*h)/2 area_circle(1) circumference_circle(1) area_triangle(2,2)
print("Counting from 1 to 10:")
for i = 1 to 11 then print(i)
print("Counting to 20 by twos:")
for i = 0 to 21 step 2 then print(i)
func celsiusToFahrenheit(c) -> (c * 9 / 5) + 32 var temp_c = 0 var temp_f = celsiusToFahrenheit(temp_c)
var a = [1,2,3] var b = [1,2] + 3 var c = [1] + [2,3] var d = [1,2] + [3]
print("Happy" * 3)
var greeting = "Hello " + "World!"
print(happy + "\n")
for i = 1 to 100 then print(("*" * i) + "\n")
func letter_grade(percent) -> if percent >= 90 then "A" elif percent >= 80 then "B" elif percent >= 70 then "C" else "Try harder!" letter_grade(97) letter_grade(83) letter_grade(79) letter_grade(53)