SlaveCode LogoSlaveCode.
Academy
RoadmapProblemsSystem Design
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
SlaveCode LogoSlaveCode.

Standardize your coding journey. From basic academy courses and guided roadmaps to advanced system design, company interview prep, and real-time coding arenas. The all-in-one platform to master algorithms and prove your engineering excellence.

Officially Featured by Judge0

Learn & Practice

  • Academy
  • Problems
  • Roadmap
  • System Design
  • Companies

Compete & Tools

  • Arena
  • Contests
  • Compilers

Legal & Support

  • Report an Issue
  • Privacy Policy
  • Terms of Service
  • Contact Us

© 2026 SlaveCode. All rights reserved.

Idris

Idris

Idris is a purely-functional programming language with dependent types, optional lazy evaluation, and features such as a totality checker. Idris may be used as a proof assistant, but it is designed to be a general-purpose programming language similar to Haskell.

Master Idris with
Interactive Learning

Elevate your Idris skills through 57 curated exercises across 0 core concepts. Master problem-solving with a structured learning path designed for modern developers.

Idris

About Idris

Idris is a general purpose pure functional programming language with dependent types. Dependent types allow types to be predicated on values, meaning that some aspects of a program’s behaviour can be specified precisely in the type. It is compiled, with eager evaluation. Its features are influenced by Haskell and ML, and include:

  • Full dependent types with dependent pattern matching
  • Simple foreign function interface (to C)
  • Compiler-supported interactive editing: the compiler helps you write code using the types
  • where clauses, with rule, simple case expressions, pattern matching let and lambda bindings
  • Dependent records with projection and update
  • Interfaces (similar to type classes in Haskell)
  • Type-driven overloading resolution
  • do notation and idiom brackets
  • indentation significant syntax
  • Extensible syntax
  • Cumulative universes
  • Totality checking
  • Hugs style interactive environment

Key Features of Idris

Dependently typed

Safety first! Strong guarantees about the correctness of programs at compile time.

Purely functional

Inspired by lambda calculus, scopes and loops are expressed by defining and calling functions.

Type classes

Categorising types into classes provides type-safe overloading.

Multithreaded

Data being immutable allows for safer and easier-to-reason-about concurrency.

Compact

Idris supplies a small number of general-purpose features.

Innovative

Idris is an actively-developed research testbed

Track icon

Dependently typed

Safety first! Strong guarantees about the correctness of programs at compile time.

Purely functional

Inspired by lambda calculus, scopes and loops are expressed by defining and calling functions.

Type classes

Categorising types into classes provides type-safe overloading.

Multithreaded

Data being immutable allows for safer and easier-to-reason-about concurrency.

Compact

Idris supplies a small number of general-purpose features.

Innovative

Idris is an actively-developed research testbed

Dive into Idris practice challenges

Accumulate
Accumulate
Level 1

Implement the `accumulate` operation, which, given a collection and an operation to perform on each element of the collection, returns a new collection containing the result of applying that operation to each element of the input collection.

Hello World
Hello World
Level 1

SlaveCode's classic introductory exercise. Just say "Hello, World!".

Leap
Leap
Level 1

Determine whether a given year is a leap year.

Reverse String
Reverse String
Level 1

Reverse a given string.

RNA Transcription
RNA Transcription
Level 1

Given a DNA strand, return its RNA complement.

Two-Fer
Two-Fer
Level 1

Create a sentence of the form "One for X, one for me.".