|Metropolis Documentation 4.3 > Platform Concepts > The Hedgehog Language|
Hedgehog is a programming language that enables users to retrieve and analyze data in Palantir. The language gives you access to models, documents, metrics, mathematical operations, and more. For sophisticated users, Hedgehog also includes features from Java-style languages such as data structures (arrays, lists) and control flow statements (if-else, for, try-catch-finally). These features give you a simple, powerful, and unified way to retrieve, analyze, and present data in Palantir.
Palantir provides a number of places to use the Hedgehog language:
The expression bars and metric selectors only accept single Hedgehog expressions. Think of them like the function bar at the top of an Excel spreadsheet. The code editors in the Custom Metric and Strategy applications accept more complicated Hedgehog code blocks, which often consist of local variables, control statements, and return statements. Think of it like a full programming environment, such as MATLAB or Java.
If you're new to Hedgehog, begin with Introduction to the Hedgehog Language. This document serves as a light-weight introduction to the language and will teach you to write and understand single-line statements.
Types - Types, subtypes, supertypes.
Metric Expressions - Metrics and their use in Hedgehog expressions.
Mathematical Operators - Mathematical operations for numbers, time series, and dates.
Literal Expressions - Strings, numbers, dates, Booleans.
Variables - Definition and use of variables in Hedgehog.
Accessing and Creating Documents Through Code - Constructing documents using Hedgehog.
Control Statements - If statements, For loops, try-catch statements, and ternary operators.
Working with Collections - Different types of collections and important collection-related concepts.
Anonymous Metrics - Introduction to Anonymous Metrics
Casting - Introduction to Casting.