<!DOCTYPE html>
<html lang="en">
<head>
        <title>Idris: A Language for Type-Driven Development</title>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="https://www.idris-lang.org/theme/css/main.css" type="text/css" />
        <link href="https://www.idris-lang.org/" type="application/atom+xml" rel="alternate" title="Idris ATOM Feed" />


        <!--[if IE]>
                <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->

        <!--[if lte IE 7]>
                <link rel="stylesheet" type="text/css" media="all" href="https://www.idris-lang.org/css/ie.css"/>
                <script src="https://www.idris-lang.org/js/IE8.js" type="text/javascript"></script><![endif]-->

        <!--[if lt IE 7]>
                <link rel="stylesheet" type="text/css" media="all" href="https://www.idris-lang.org/css/ie6.css"/><![endif]-->

</head>

<body id="index" class="home">
        <header id="banner" class="body">
                <h1><a href="https://www.idris-lang.org/index.html">
                        <!--<img src = "https://www.idris-lang.org/images/logo-small.png" alt = "[Idris]" aligh=left>-->
</a></h1>
                <nav><ul>
                <li><a href="https://www.idris-lang.org/index.html">Home</a></li>
                    <li ><a href="https://www.idris-lang.org/pages/download.html">Download</a></li>
                    <li ><a href="https://www.idris-lang.org/pages/example.html">Example</a></li>
                    <li ><a href="https://www.idris-lang.org/pages/documentation.html">Documentation</a></li>
                <!-- <li><a href="https://www.idris-lang.org/">Archives</a></li> -->
                    <li ><a href="https://www.idris-lang.org/category/news.html">News</a></li>
                </ul></nav>
        </header><!-- /#banner -->


<section id="content" class="body">
    <h1 class="entry-title">Idris: A Language for Type-Driven Development</h1>
    <!-- .. image:: images/profile.jpeg -->
<!-- :alt: [Shape Sorter Box] -->
<!-- :align: right -->
<p>Idris is a programming language designed to encourage <em>Type-Driven
Development</em>.</p>
<p>In type-driven development, types are tools for constructing programs.  We
treat the type as the <em>plan</em> for a program, and use the compiler and type
checker as our assistant, guiding us to a complete program that satisfies the
type. The more expressive the type is that we give up front, the more
confidence we can have that the resulting program will be correct.</p>
<p>In Idris, types are first-class constructs in the langauge. This means types
can be passed as arguments to functions, and returned from functions just like
any other value, such as numbers, strings, or lists. This is a small but
powerful idea, enabling:</p>
<ul class="simple">
<li>relationships to be expressed between values; for example, that two lists
have the same length.</li>
<li>assumptions to be made explicit and checked by the compiler. For example, if
you assume that a list is non-empty, Idris can ensure this assumption always
holds before the program is run.</li>
<li>if desired, properties of program behaviour to be formally stated and
proven.</li>
</ul>
<div class="section" id="getting-started">
<h2>Getting Started</h2>
<p>You can see some <a class="reference external" href="https://www.idris-lang.org/pages/example.html">small examples</a>, then take a
look at the <a class="reference external" href="https://www.idris-lang.org/pages/documentation.html">documentation</a>.</p>
</div>
<div class="section" id="community">
<h2>Community</h2>
<dl class="docutils">
<dt><strong>Mailing list</strong></dt>
<dd>Long-form discussion happens on the <a class="reference external" href="https://groups.google.com/forum/#!forum/idris-lang">mailing list</a>.</dd>
<dt><strong>IRC</strong></dt>
<dd>There is also an irc channel <tt class="docutils literal">#idris</tt> on <a class="reference external" href="irc://chat.freenode.net/idris">freenode</a>.
Point your irc client to <tt class="docutils literal">chat.freenode.net</tt> then <tt class="docutils literal">/join #idris</tt>.
Alternatively, there is a <a class="reference external" href="http://webchat.freenode.net/">web interface</a>.</dd>
<dt><strong>GitHub</strong></dt>
<dd>The Idris source is available from our repository.
Tools and code by the wider Idris community are available in a
<a class="reference external" href="https://github.com/idris-hackers">GitHub organisation</a>.</dd>
<dt><strong>Slack</strong></dt>
<dd>There is an active <tt class="docutils literal">#idris</tt> channel on the
<a class="reference external" href="https://functionalprogramming.slack.com/">Functional Programming</a> Slack.</dd>
</dl>
<p>All participants in these forums are requested to abide by the
<a class="reference external" href="https://www.idris-lang.org/pages/community-standards.html">community standards</a>.</p>
<p>Idris development is led by <a class="reference external" href="http://www.type-driven.org.uk/edwinb/">Edwin Brady</a>
at the <a class="reference external" href="http://www.cs.st-andrews.ac.uk">School of Computer Science, University of St Andrews</a>.</p>
<p>Many thanks to Heath Johns for designing the logo.</p>
</div>
<div class="section" id="support">
<h2>Support</h2>
<p>Idris has been generously supported by the following <a class="reference external" href="https://epsrc.ukri.org/">EPSRC</a> grants:</p>
<ul class="simple">
<li><a class="reference external" href="https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=EP/N024222/1">Type-driven Verification of Communicating Systems</a></li>
<li><a class="reference external" href="https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=EP/T007265/1">Programming as Conversation: Type-Driven Development in Action</a></li>
</ul>
<p>We are also grateful for the continuing support
of <a class="reference external" href="http://www.sicsa.ac.uk/">SICSA</a>, the Scottish Informatics and Computer Science Alliance</p>
</div>

</section>

        <aside id="sidebar">
                <div class="widget">
                        <h2>Categories</h2>
                        <ul>
                           <li ><a href="https://www.idris-lang.org/category/news.html">News</a></li>
                        </ul>
                </div>
                <div class="widget social">
                        <h2>Social</h2>
                        <ul>
                            <li><a href="https://www.idris-lang.org/feeds/all.atom.xml" rel="alternate">atom feed</a></li>

                            <li><a href="https://www.twitter.com/idrislang">@idrislang</a></li>
                            <li><a href="https://www.github.com/idris-lang">GitHub</a></li>
                        </ul>
                </div><!-- /.social -->
        </aside><!-- /#sidebar -->

        <footer id="footer" class="body">
                <address id="about" class="vcard body">
                Proudly powered by <a href="http://alexis.notmyidea.org/pelican/">Pelican</a>, which takes great advantage of <a href="http://python.org">Python</a> (not Idris :)).
                Patches are welcome on <a href="https://github.com/edwinb/idris-lang.org/">github</a>!
                </address><!-- /#about -->

                <p>The theme is «notmyidea-cms», a modified version of «notmyidea», the default theme.</p>
        </footer><!-- /#footer -->

</body>
</html>
