# Hoon

- [Why Hoon?](/hoon/why-hoon.md): Rationale for Hoon programming language design.
- [Advanced Types](/hoon/advanced.md): Advanced Hoon type system concepts including polymorphism, variance, wet and dry arms, core nesting rules, and advanced features like aliasing and bridges for complex programming scenarios.
- [Arvo](/hoon/arvo.md): Arvo types and functions reference including fundamental types like $arch, $beak, $beam, $cage, $duct, $move, $ship, and utilities for Clay nodes, global paths, event processing, and namespace.
- [Auras](/hoon/auras.md): Hoon aura system reference covering soft type annotation for atoms including text, numbers, dates, addresses, and their nesting behavior, bitwidth specifications, and literal syntax examples.
- [Basic Types](/hoon/basic.md): Hoon type system fundamentals covering the recursive type data structure including atoms, cells, cores, faces, forks, and auras with explanations of type inference and nest checking.
- [Cheat Sheet](/hoon/cheat-sheet.md): Quick reference guide to Hoon programming language syntax, operators, and functions available as a downloadable PDF for developers learning Urbit development.
- [Cryptography](/hoon/cryptography.md): Cryptography functions reference for Hoon including Suite B cryptography implementation with AES encryption, elliptic curve digital signatures, Diffie-Hellman key exchange, and Ames security.
- [Examples](/hoon/examples.md): Programming exercise solutions in Hoon covering algorithms like spell checking with blocks, competitive programming challenges, prime number calculations, path finding, and encryption implementations.
- [ABC Blocks](/hoon/examples/abc-blocks.md): Programming challenge solution for spelling words with letter blocks in Hoon including input validation, alphabet checking, and backtracking algorithm implementation with unit tests.
- [Competitive Programming](/hoon/examples/competitive.md): Programming implementations in Hoon for common algorithmic tasks including sorting, bitwise operations, prime calculation, functional operators, floating-point math, and debugging techniques.
- [Emirp](/hoon/examples/emirp.md): Programming challenge for calculating emirp numbers (primes whose reverses are also primes) in Hoon with efficient prime checking algorithms and multiple solution implementations including unit tests.
- [Gleichniszahlenreihe](/hoon/examples/gleichniszahlenreihe.md): Challenge to implement the look-and-say sequence (Gleichniszahlenreihe) in Hoon with sample solutions.
- [Islands](/hoon/examples/islands.md): Challenge to find the largest connected island in a 2D grid using graph traversal algorithms.
- [Luhn Number](/hoon/examples/luhn-number.md): Challenge to implement the Luhn algorithm for credit card number validation in Hoon.
- [Minimum Path Sum](/hoon/examples/min-path.md): Challenge to find the minimum cost path through a 2D grid using dynamic programming.
- [Phone Letters](/hoon/examples/phone-letters.md): Challenge to generate all possible letter combinations from phone keypad number sequences.
- [Restore IP](/hoon/examples/restore-ip.md): Challenge to restore valid IPv4 addresses from strings of digits by inserting dots.
- [Rhonda Numbers](/hoon/examples/rhonda.md): Challenge to find and validate Rhonda numbers based on prime factorization and base conversion.
- [Roman Numerals](/hoon/examples/roman.md): Challenge to implement conversion between Roman numerals and decimal numbers in Hoon.
- [Solitaire Cipher](/hoon/examples/solitaire.md): Challenge to implement the Solitaire cryptographic cipher algorithm using playing cards as keys.
- [Water Towers](/hoon/examples/water-towers.md): Challenge to calculate water trapped between tower heights using dynamic programming.
- [Generators](/hoon/generators.md): Guide to building and using Hoon generator scripts for Dojo interaction, including bare generators for standalone calculations, %say generators with system knowledge access, and %ask generators.
- [Hoon Errors](/hoon/hoon-errors.md): Guide to debugging Hoon code, covering common syntax and semantic errors, error traces, debugging modes, and stack trace interpretation.
- [Hoon Style Guide](/hoon/style.md): Official Hoon style guide covering layout conventions, naming standards, commenting practices, and code quality.
- [Implementing an Aura](/hoon/aura-guide.md): Step-by-step guide to creating custom auras in Hoon, covering aura design, base logic, pretty-printing, and parsing rules with a sexagesimal degrees example.
- [Irregular forms](/hoon/irregular.md): Reference guide to Hoon's irregular syntax forms, showing both the irregular and regular forms for common patterns with quick lookup table and detailed explanations.
- [JSON](/hoon/json-guide.md): Guide to working with JSON in Hoon, covering conversion between Hoon data structures and JSON using +enjs and +dejs functions, with practical examples and mark file creation.
- [Lagoon (Linear Algebra)](/hoon/lagoon.md): Documentation for the %base desk's /lib/lagoon.hoon library, which contains linear algebra operations.
- [Convenience functions](/hoon/lagoon/conv.md)
- [Builders](/hoon/lagoon/build.md)
- [Structures](/hoon/lagoon/structure.md)
- [Arithmetic](/hoon/lagoon/math.md)
- [Limbs and wings](/hoon/limbs.md): Introduction to limbs and wings in Hoon, which provide the primary mechanism for accessing data from the subject without traditional scope or environment concepts.
- [Limbs](/hoon/limbs/limb.md): Reference for limbs in Hoon, which are attributes of the subject used to resolve to pieces of data (legs) or computations (arms) within the subject tree.
- [Wings](/hoon/limbs/wing.md): Reference for wings in Hoon, which are lists of limbs forming search paths into the subject to access nested data and computations.
- [Mathematics](/hoon/math.md): Documentation for the %base desk's /lib/math.hoon library, which contains mathematical operations.
- [Mips (Maps of Maps)](/hoon/mip.md): Reference for working with mips (maps of maps) in Hoon using the mip library, covering mip operations like insertion, deletion, and retrieval.
- [Parsing Text](/hoon/parsing.md): Guide to parsing text in Hoon using functional parsers and combinators, covering basic types like hair/nail/edge/rule and common parsing patterns.
- [Runes](/hoon/rune.md): Reference documentation for Hoon's rune expressions organized by family.
- [| bar · Cores](/hoon/rune/bar.md): Reference for the core rune family, including gates, doors, traps, and wet cores with detailed syntax and examples for each variant.
- [$ buc · Structures](/hoon/rune/buc.md): Reference for Hoon's structure runes, including mold creation, validation, and type construction.
- [% cen · Calls](/hoon/rune/cen.md): Reference for the function call rune family, evaluating arms in cores and doors with various calling patterns and argument arrangements.
- [: col · Cells](/hoon/rune/col.md): Reference for Hoon's cell constructor runes, with various forms including irregular syntax for common patterns.
- [. dot · Nock](/hoon/rune/dot.md): Reference for Hoon's Nock runes, including scrying with .^ and basic Nock operations like increment.
- [/ fas · Imports](/hoon/rune/fas.md): Reference for build system runes, used to import files from /sur and /lib directories among other locations.
- [^ ket · Casts](/hoon/rune/ket.md): Reference for Hoon's type-casting rune family, which allows safe type transformations without violating constraints.
- [+ lus · Arms](/hoon/rune/lus.md): Reference for the arm rune family used to define functions and other named expressions in cores, including normal computations, structure definitions, and constructors.
- [; mic · Make](/hoon/rune/mic.md): Reference for the make rune family used for miscellaneous useful macros, including n-ary function calls and monadic notation.
- [~ sig · Hints](/hoon/rune/sig.md): Reference for the hint runes used to pass non-semantic information to the interpreter using Nock 11, including debugging and tracing.
- [= tis · Subject](/hoon/rune/tis.md): Reference for Hoon's subject modification runes.
- [? wut · Conditionals](/hoon/rune/wut.md): Reference for the conditional runes used for logical operations, including branching, type testing, and boolean logic with type inference.
- [! zap · Wild](/hoon/rune/zap.md): Reference for the wild runes used for special operations, including AST introspection and vase creation for dynamic types.
- [Constants (Atoms and Strings)](/hoon/rune/constants.md): Reference for constant expressions in Hoon, including cold atoms, strings with interpolation, and path syntax with examples.
- [--, == · Terminators](/hoon/rune/terminators.md): Reference for Hoon terminators -- and == used to end core expressions and other variable-length expression sequences respectively.
- [Sail (HTML)](/hoon/sail.md): Guide to Sail, Urbit's domain-specific language for composing HTML and XML structures directly in Hoon, with syntax and examples for creating web interfaces.
- [Serialization](/hoon/serialization.md): Guide to noun serialization in Hoon using jamming and cuing techniques for converting nouns to atoms and back, with compression through internal references.
- [Sets](/hoon/sets.md): Guide to working with sets in Hoon. Set creation, membership testing, and set operations like union, intersection, and difference.
- [Standard Library](/hoon/stdlib.md): Reference documentation for the Hoon standard library, organized by layer from basic arithmetic to advanced compiler operations and text processing.
- [1a: Basic Arithmetic](/hoon/stdlib/1a.md): Reference for basic arithmetic functions in Hoon including addition, subtraction, multiplication, division, and comparison operations for unsigned integers.
- [1b: Tree Addressing](/hoon/stdlib/1b.md): Reference for tree addressing functions in Hoon using Nock's tree addressing scheme to navigate and manipulate tree structures.
- [1c: Molds and Mold-Builders](/hoon/stdlib/1c.md): Reference for fundamental container types and molds in Hoon including pair, list, unit, tree, gate, and other essential type definitions.
- [2a: Unit Logic](/hoon/stdlib/2a.md): Reference for unit logic functions in Hoon, providing operations for working with optional values including binding, replacing null, and unit transformations.
- [2b: List Logic](/hoon/stdlib/2b.md): Reference for \`+list\` manipulation functions in Hoon including searching, sorting, filtering, and transforming operations on \`+list\` data structures.
- [2c: Bit Arithmetic](/hoon/stdlib/2c.md): Reference for bit arithmetic functions in Hoon used for assembling, disassembling, and manipulating atoms at the bit level using block-based operations.
- [2d: Bit Logic](/hoon/stdlib/2d.md): Reference for bit logic functions in Hoon providing bitwise logical operations including binary AND, OR, XOR, and other bit manipulation functions.
- [2e: Insecure Hashing](/hoon/stdlib/2e.md): Reference for non-cryptographic hash functions in Hoon including MurmurHash3 and other fast hashing algorithms for data structures and scrambling.
- [2f: Noun Ordering](/hoon/stdlib/2f.md): Reference for noun ordering functions in Hoon used for comparing and sorting nouns with different ordering schemes including alphabetical and depth order.
- [2g: Unsigned Powers](/hoon/stdlib/2g.md): Exponentiation and power-related operations for unsigned integers.
- [2h: Set Logic](/hoon/stdlib/2h.md): Set data structure operations including union, intersection, difference, and membership testing.
- [2i: Map Logic](/hoon/stdlib/2i.md): Functions for working with key-value \`+map\`s, including insertion, deletion, lookup, and \`+map\` transformations.
- [2j: Jar and Jug Logic](/hoon/stdlib/2j.md): Operations for \`+jar\` (map of lists) and jug (map of sets) data structures.
- [2k: Queue Logic](/hoon/stdlib/2k.md): Queue data structure operations for first-in, first-out data handling.
- [2l: Container from Container](/hoon/stdlib/2l.md): Functions for converting between container types like lists, maps, and sets.
- [2m: Container from Noun](/hoon/stdlib/2m.md): Functions for creating typed containers (lists, maps, sets) from raw nouns.
- [2n: Functional Hacks](/hoon/stdlib/2n.md): Functional programming utilities including composition, currying, and common higher-order functions.
- [2o: Normalizing Containers](/hoon/stdlib/2o.md): Mold generators for common container types including maps, sets, queues, jars, and jugs.
- [2p: Serialization](/hoon/stdlib/2p.md): Serialization functions for packing and unpacking \`$noun\`s to and from atoms.
- [2q: Molds and Mold-Builders](/hoon/stdlib/2q.md): Core molds and mold builders for basic types like paths, dates, tanks, and strings.
- [3a: Modular and Signed Ints](/hoon/stdlib/3a.md): Signed integer arithmetic and modular arithmetic operations.
- [3b: Floating Point](/hoon/stdlib/3b.md): Floating-point arithmetic operations for binary and decimal floating-point numbers.
- [3c: Urbit Time](/hoon/stdlib/3c.md): Time and date manipulation functions for Urbit's datetime format.
- [3d: SHA Hash Family](/hoon/stdlib/3d.md): SHA cryptographic hash functions including SHA-1, SHA-256, and SHA-512.
- [3e: AES encryption (Removed)](/hoon/stdlib/3e.md): Deprecated section for AES encryption functions that have been removed from the standard library.
- [3f: Scrambling](/hoon/stdlib/3f.md): Reversible scrambling operations used in Urbit's phonetic base encoding systems (@p and @q).
- [3g: Molds and Mold-Builders](/hoon/stdlib/3g.md): Molds for syntax parsing including coin literals, dimes, and format specifiers.
- [4a: Exotic Bases](/hoon/stdlib/4a.md): Phonetic base encoding functions for Urbit's naming system and ship identities.
- [4b: Text Processing](/hoon/stdlib/4b.md): Text processing functions for printing, formatting, and converting between text types.
- [4c: Tank Printer](/hoon/stdlib/4c.md): Tank printing and rendering functions for formatting structured output text.
- [4d: Parsing (Tracing)](/hoon/stdlib/4d.md): Parsing utilities for tracking line and column positions during text parsing.
- [4e: Parsing (Combinators)](/hoon/stdlib/4e.md): Parser combinators for composing and combining parsing rules.
- [4f: Parsing (Rule-Builders)](/hoon/stdlib/4f.md): Parser rule builders for constructing parsing rules and modifying parser behavior.
- [4g: Parsing (Outside Caller)](/hoon/stdlib/4g.md): Top-level parsing functions for parsing text from external sources.
- [4h: Parsing (ASCII Glyphs)](/hoon/stdlib/4h.md): Parsers for individual ASCII characters and punctuation marks.
- [4i: Parsing (Useful Idioms)](/hoon/stdlib/4i.md): Common parsing patterns for alphabetic, numeric, and whitespace characters.
- [4j: Parsing (Bases and Base Digits)](/hoon/stdlib/4j.md): Parsers for numeric literals in various bases including binary, hex, and decimal.
- [4k: Atom Printing](/hoon/stdlib/4k.md): Functions for rendering atoms and coins as human-readable text output.
- [4l: Atom Parsing](/hoon/stdlib/4l.md): Functions for parsing atoms from text strings in various formats and bases.
- [4m: Formatting Functions](/hoon/stdlib/4m.md): Functions for formatting and rendering dimes, atoms, and other data types as text.
- [4n: Virtualization](/hoon/stdlib/4n.md): Nock virtualization functions for safe execution and computation wrapping.
- [4o: Molds](/hoon/stdlib/4o.md): Advanced molds for Hoon's type system including type definitions and abstract syntax tree structures.
- [5a: Compiler Utilities](/hoon/stdlib/5a.md): Internal compiler utilities and functions used by the Hoon compiler backend.
- [5b: Macro Expansion](/hoon/stdlib/5b.md): Internal macro expansion utilities used by the Hoon compiler for syntax transformations.
- [5c: Compiler Backend & Prettyprinter](/hoon/stdlib/5c.md): Hoon compiler backend and pretty-printing functions for code formatting and output.
- [5d: Parser](/hoon/stdlib/5d.md): Hoon language parser with core parsing functions and rules for syntax analysis.
- [5e: Molds and mold builders](/hoon/stdlib/5e.md): XML and markup-related molds for handling structured document formats.
- [5f: Profiling support](/hoon/stdlib/5f.md): Profiling and performance monitoring utilities for code analysis and optimization.
- [Strings](/hoon/strings.md): Guide to Hoon's string types including cords, tapes, and text manipulation functions.
- [The Engine Pattern](/hoon/engine-pattern.md): Guide to the engine pattern in Hoon for managing nested cores and state with +abet.
- [Udon (Markdown-esque)](/hoon/udon.md): Udon markup language for document composition, similar to Markdown with Urbit-related affordances.
- [Vases](/hoon/vases.md): Guide to vases, pairs of type and data used for runtime type information in Urbit.
- [Zuse](/hoon/zuse.md): Documentation for the %base desk's /sys/zuse.hoon library, which contains helper functions for the kernel.
- [2d(1-5): To JSON, Wains](/hoon/zuse/2d_1-5.md): Text formatting functions. Convert cords to wains (line lists), JSON encoding functions, format library utilities.
- [2d(6): From JSON](/hoon/zuse/2d_6.md): JSON decoding functions that crash on failure. Fast JSON parsing without unit wrapping. dejs format library.
- [2d(7): From JSON (unit)](/hoon/zuse/2d_7.md): JSON decoding functions that return units. Safe JSON parsing with error handling. dejs-soft format library.
- [2e(2-3): Print & Parse JSON](/hoon/zuse/2e_2-3.md): JSON encoding and decoding functions. Print JSON to cord, parse JSON from cord. Part of format library.
- [2m: Ordered Maps](/hoon/zuse/2m.md): Ordered maps (mop) data structure and operations. Maps with custom ordering functions, not hash-ordered.
