typed-racket - Typed Racket

  •        62

Typed Racket is Racket's gradually-typed sister language which lets you add statically-checked type annotations to your programs. For more information, see the Typed Racket Guide. Typed Racket is bundled in the default Racket distribution, which you can download from Racket's download page.

https://github.com/racket/typed-racket

Tags
Implementation
License
Platform

   




Related Projects

racket - The Racket repository

  •    Racket

This is the source code for the core of Racket. See "INSTALL.txt" for full information on building Racket. To build the full Racket distribution from this repository, run make in the top-level directory. To build minimal Racket, run make base.

racket-mode - GNU Emacs major modes for Racket: Edit and REPL.

  •    Emacs

This provides a major mode to edit Racket source files, as well as a major mode for a Racket REPL. The edit/run experience is similar to DrRacket. Focus on Racket.

frog - Frog is a static web site generator implemented in Racket, targeting Bootstrap and able to use Pygments

  •    Racket

Frog image by @Goug8888, used under Creative Commons license Attribution-NonCommercial-ShareAlike 2.0 Generic. Frog is a static web site generator written in Racket.

pollen - book-publishing system in Racket

  •    Racket

A book-publishing system written in Racket. This is the software I use to publish & maintain my web-based books Beautiful Racket, Practical Typography, and Typography for Lawyers. If you think documents should be programmable, you’ll love it. If not, you can move along.

fractalide - Reusable Reproducible Composable Software

  •    Racket

Fractalide is a free and open source service programming platform using dataflow graphs. Graph nodes represent computations, while graph edges represent typed data (may also describe tensors) communicated between them. This flexible architecture can be applied to many different computation problems, initially the focus will be Microservices to be expanded out into the Internet of Things. Fractalide is in the same vein as the NSA’s Niagrafiles (now known as Apache-NiFi) or Google’s TensorFlow but stripped of all Java, Python and GUI bloat. Fractalide faces big corporate players like Ab Initio, a company that charges a lot of money for dataflow solutions.


herbie - Synthesis for floating-point expressions

  •    Racket

Herbie synthesizes floating-point programs from real-number programs, automatically handling simple numerical instabilities. Visit our website for tutorials, documentation, and an online demo.Herbie can improve the accuracy of many real-world programs, and is used by scientists in many disciplines. It has lead to two patches (for complex square roots and trigonometric functions), in math.js an open-source mathematics library. Herbie has semi-regular releases twice a year, maintains backwards compatibility, and uses standardized formats.

gerbil - Gerbil Scheme

  •    Scheme

Gerbil is an opinionated dialect of Scheme designed for Systems Programming, with a state of the art macro and module system on top of the Gambit runtime. The macro system is based on quote-syntax, and provides the full meta-syntactic tower with a native implementation of syntax-case. It also provides a full-blown module system, similar to PLT Scheme's (sorry, Racket) modules. The main difference from Racket is that Gerbil modules are single instantiation, supporting high performance ahead of time compilation and compiled macros.

rosette - The Rosette solver-aided host language, sample solver-aided DSLs, and demos

  •    Racket

Rosette is a solver-aided programming language that extends Racket with language constructs for program synthesis, verification, and more. This repository includes the source code for Rosette, as well as several example solver-aided DSLs.

hackett - WIP implementation of a Haskell-like Lisp in Racket

  •    Racket

Hackett is an attempt to implement a Haskell-like language with support for Racket’s macro system, built using the techniques described in the paper Type Systems as Macros. It is currently extremely work-in-progress. Due to the way Hackett is implemented, many things that are language features in Haskell can be derived concepts in Hackett. In fact, Hackett’s ADTs are not primitives, they are actually implemented as a library via the data and case macros in hackett/private/adt. Other things, like newtype deriving and generics, should be possible to implement as derived concepts as well.

SWIG

  •    C

A code generator for connecting C/C++ with other programming languages

atreus - column-staggered travel keyboard design

  •    Racket

The Atreus is a mechanical keyboard designed primarily to match the shape of human hands and to be as portable as possible. The case measures 26x12cm and lacks even a number row, relying heavily upon the fn key. There is a circuit board for this design, but it’s also possible to manually wire the matrix. I’ve seen a number of existing DIY 40% keyboard designs, but most of them stagger the rows, which I find very annoying now that I’ve gotten used to the columnar layout of the Ergodox. In addition, many of the designs I’ve seen waste a lot of room on the space bar, failing to take into account the fact that the thumb is the strongest and most versatile of the fingers. This design avoids both these problems while taking a more couch-friendly single-piece approach.

Recruitr - Modern online judge tool, Online test made easy

  •    Python

Recruitr is a modern online judge tool. You can add coding challenges via the admin interface, specify test cases (expected input/output), and make it available for visitors to try to solve them by submitting code. Currently, recruitr supports C, C++, Haskell, Java, Javascript (Node), Perl, PHP, Python, Racket, Ruby, Scala, and Shell (Bash). The user submitted code is run in a docker container, therefore very secure.

eopl3 - Code from the book "Essentials of Programming Languages", 3rd ed. by Friedman and Wand

  •    Scheme

This is all the code from the book Essentials of Programming Languages, 3rd edition, by Friedman and Wand. The code dates from 2009. It has now been updated and should run right out of the box on Racket version 5.3.6.

j-bob

  •    Scheme

This repository contains "J-Bob", the proof assistant from "The Little Prover" by Daniel P. Friedman and Carl Eastlund, published by MIT Press in 2015. We include the necessary code to run J-Bob in ACL2 and Scheme, as well as a transcript of the proofs in the book. J-Bob is also included in the Dracula package for Racket.

syntastic - Syntax checking hacks for vim

  •    Vim

Syntastic is a syntax checking plugin for Vim created by Martin Grenfell. It runs files through external syntax checkers and displays any resulting errors to the user. This can be done on demand, or automatically as files are saved. If syntax errors are detected, the user is notified and is happy because they didn't have to compile their code or execute their script to find them. At the time of this writing, syntastic has checking plugins for ACPI Source Language, ActionScript, Ada, Ansible configurations, API Blueprint, AppleScript, AsciiDoc, Assembly languages, BEMHTML, Bro, Bourne shell, C, C++, C#, Cabal, Chef, CMake, CoffeeScript, Coco, Coq, CSS, Cucumber, CUDA, D, Dart, DocBook, Dockerfile, Dust, Elixir, Erlang, eRuby, Fortran, Gentoo metadata, GLSL, Go, Haml, Haskell, Haxe, Handlebars, HSS, HTML, Java, JavaScript, JSON, JSX, Julia, LESS, Lex, Limbo, LISP, LLVM intermediate language, Lua, Markdown, MATLAB, Mercury, NASM, Nix, Objective-C, Objective-C++, OCaml, Perl, Perl 6, Perl POD, PHP, gettext Portable Object, OS X and iOS property lists, Pug (formerly Jade), Puppet, Python, QML, R, Racket, RDF TriG, RDF Turtle, Relax NG, reStructuredText, RPM spec, Ruby, SASS/SCSS, Scala, Slim, SML, Solidity, Sphinx, SQL, Stylus, Tcl, TeX, Texinfo, Twig, TypeScript, Vala, Verilog, VHDL, Vim help, VimL, Vue.js, xHtml, XML, XSLT, XQuery, YACC, YAML, YANG data models, YARA rules, z80, Zope page templates, and Zsh. See the manual for details about the corresponding supported checkers (:help syntastic-checkers in Vim).

anarki - Community-managed fork of the Arc dialect of Lisp; for commit privileges submit a pull request

  •    Arc

The intention is to be extremely permissive in accepting patches. For commit privileges, just submit your first pull request or ask on Arc Language Forum. If you're new to Arc, or Lisp in general, a good starting point is the Tutorial.

typed - Improvements to PHP's type system in userland: generics, typed lists, tuples and structs

  •    PHP

This package is a mere proof of concept about what's possible in PHP's userland to improve type checking. It adds support for type inference, generics, union types, typed lists, tuples and structs. Because all is done in userland, there are limitations on what syntax is possible. The following examples all show the manual type configuration. There are some cases where type inference falls short, and you have to fall back on manually defining them. You might also prefer the manual approach, for clarity's sake.

utility-types - Utility Types for TypeScript (provide migration from Flow's Utility Types)

  •    TypeScript

The primary goal of this library is to provide a set of proven Utility Types (inspired by Set Theory and functional languages) that should complement existing TypeScript Mapped Types. The secondary goal is to provide a compatibility layer with Flow's Utility Types. Flow and TypeScript have a lot in common. By using this library TypeScript Developers will become more familiar with differences to "Flow" and extend their static-typing toolbelt. Moreover it can help to migrate between "Flow" and "TypeScript" projects much easier.

apollo-ios - 📱 A strongly-typed, caching GraphQL client for iOS, written in Swift

  •    Swift

Apollo iOS is a strongly-typed, caching GraphQL client for iOS, written in Swift.It allows you to execute queries and mutations against a GraphQL server, and returns results as query-specific Swift types. This means you don’t have to deal with parsing JSON, or passing around dictionaries and making clients cast values to the right type manually. You also don't have to write model types yourself, because these are generated from the GraphQL definitions your UI uses.