# Fun Examples

This directory contains small, pure Fun examples organized by topic.

How to run:
- Build the interpreter once: `cmake --build ./build_debug --target fun`
- Execute an example: `./build_debug/fun ./examples/<path>.fun`
- For CGI examples under `examples/data/htdocs`, start one of the blocking HTTP servers from `examples/blocking/` and visit the URL noted in the file headers.

Categories:
- basics: hello_world, fizzbuzz, fibonacci, collections, boolean_decl, booleans, builtins_conversions
- arrays: arrays, arrays_advanced, arrays_iter
- strings: split_join_trim, templating_min, urlencode_decode, base64_demo
- io: read_write_file, csv_reader (uses examples/io/sample.csv), word_count
- algos: sort_and_search, deduplicate, stack_queue
- cli: env_echo, args_parse (parse ARGS env), cli_parse_example
- net: tcp_echo_server, tcp_echo_client, http_static_server (blocking)
- data/htdocs (CGI): hello.fun, info.fun, counter.fun, form_post.fun, redirect.fun, json_like_api.fun
- compose: run_other_fun, pipeline
- patterns: assert_like, logging_min
- snippets: escape_html_demo, maps_iterate, include_namespace

Notes:
- Scripts that start servers (tcp_echo_server, http_static_server, http_server_cgi*.fun) are blocking; run them in a separate terminal.
- Some examples rely on stdlib includes; if needed, set `FUN_LIB_DIR=./lib` before running.
