Skip to content

Commit

Permalink
Merge pull request #1157 from aditya-bhaumik/racket
Browse files Browse the repository at this point in the history
Programming languages - "Racket" Complete Resources
  • Loading branch information
jfmartinz authored Jun 17, 2024
2 parents 130330f + d5af575 commit 6e52ac9
Showing 1 changed file with 270 additions and 0 deletions.
270 changes: 270 additions & 0 deletions Programming Languages/Racket/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,270 @@
# Racket

Racket is a general-purpose, multi-paradigm programming language in the Lisp-Scheme family, designed for both scripting and creating large applications. It emphasizes functional programming and offers powerful tools for creating domain-specific languages.
Table of Contents

## Table of Contents

- [Roadmap](#roadmap)<br>
- [Racket](#racket)<br>
- [Introduction](#introduction)<br>
- [Basics](#basics)<br>
- [Functions](#functions)<br>
- [Data Structures](#data-structures)<br>
- [Macros](#macros)<br>
- [Concurrency](#concurrency)<br>
- [Modules and Libraries](#modules-and-libraries)<br>
- [Error Handling](#error-handling)<br>
- [File I/O and Networking](#file-io-and-networking)<br>
- [Web Development](#web-development)<br>
- [Resources](#resources)<br>
- [Courses](#courses)
- [Conclusion](#conclusion)


## Roadmap

> Racket roadmap outlines the essential steps and skills needed to become proficient in Racket programming.
<table width="100%" id="Roadmap">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://racket.discourse.group/t/what-is-the-racket-roadmap/2204/6">Racket Roadmap</a></td>
<td>A guide to the Racket programming language and its ecosystem.</td>
</tr>
</table>
## Racket

> Offers step-by-step guides and tutorials covering various aspects of Racket programming. Helps beginners understand fundamental concepts and advanced users explore new techniques.
Introduction
<table width="100%">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://racket-lang.org/">Overview</a></td>
<td>Racket is a general-purpose, multi-paradigm programming language in the Lisp-Scheme family.</td>
</tr>
<tr>
<td><a href="https://medium.com/@G_Kumar/racket-programming-language-features-c71b83b625c4">Feature</a></td>
<td>Learn about the features of Racket programming.</td>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/quick/">Quick Introduction</a></td>
<td>Racket provides a quick introduction to its syntax and features.</td>
</tr>
</table>

### Basics

<table width="100%">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://therenegadecoder.com/code/hello-world-in-racket/">Hello World</a></td>
<td>Get started with writing your first Racket program.</td>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/reference/eval-model.html">Evaluation Model</a></td>
<td>Understand how Racket evaluates expressions.</td>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/guide/datatypes.html">Data Types</a></td>
<td>An overview of the various data types available in Racket.</td>
</tr>
<tr>
<td><a href="https://home.adelphi.edu/~siegfried/cs270/270rl6.html">Syntax and Semantics</a></td>
<td>Learn the syntax rules and semantic conventions of Racket.</td>
</tr>
</table>

### Functions

<table width="100%">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://beautifulracket.com/explainer/functions.html">Defining Functions</a></td>
<td>Learn how to define and use functions in Racket.</td>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/mischief/function.html">Higher-Order Functions</a></td>
<td>Explore the concept of higher-order functions in Racket.</td>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/guide/Lists__Iteration__and_Recursion.html">Recursion</a></td>
<td>An article on using recursion in Racket programming.</td>
</tr>
</table>

### Data Structures

<table width="100%">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/reference/pairs.html#:~:text=Pairs%20and%20Lists%20in%20The,see%20Mutable%20Pairs%20and%20Lists).">Pairs and Lists</a></td>
<td>This article looks into the usage of pairs and lists in Racket.</td>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/reference/vectors.html">Vectors</a></td>
<td>This article will look at what vectors are and how they are used.</td>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/reference/hashtables.html">Hash Tables</a></td>
<td>An overview of hash tables in Racket and their uses.</td>
</tr>
</table>

### Macros
<table width="100%">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/guide/macros.html#:~:text=A%20macro%20is%20a%20syntactic,small%20set%20of%20core%20constructs.">Introduction to Macros</a></td>
<td>This article introduces the concept of macros in Racket.</td>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/guide/pattern-macros.html#:~:text=The%20define%2Dsyntax%2Drule%20form,a%20use%20of%20the%20macro.">Syntax Rules</a></td>
<td>An overview of defining macros using syntax rules.</td>
</tr>
<tr>
<td><a href="https://download.racket-lang.org/docs/5.1/html/macro-debugger/index.html">Macro Debugging</a></td>
<td>Learn techniques for debugging macros in Racket.</td>
</tr>
</table>

### Concurrency

<table width="100%">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/reference/threads.html">Threads</a></td>
<td>An article on using threads for concurrent programming in Racket.</td>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/reference/concurrency.html">Concurrency Primitives</a></td>
<td>An overview of concurrency primitives available in Racket.</td>
</tr>
</table>

### Modules and Libraries
<table width="100%">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/guide/modules.html">Modules</a></td>
<td>Learn about modules in Racket for organizing code.</td>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/pkg/index.html">Package System</a></td>
<td>An overview of Racket's package system for managing libraries.</td>
</tr>
</table>

### Error Handling
<table width="100%">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/reference/exns.html">Exception Handling</a></td>
<td>An article on handling exceptions in Racket.</td>
</tr>
<tr>
<td><a href="https://beautifulracket.com/explainer/errors-and-exceptions.html">Built-in Exceptions</a></td>
<td>An overview of built-in exceptions in Racket.</td>
</tr>
</table>

### File I/O and Networking
<table width="100%">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/reference/Filesystem.html">File I/O</a></td>
<td>Learn how to handle file input and output in Racket.</td>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/reference/networking.html">Networking</a></td>
<td>An article on networking capabilities in Racket.</td>
</tr>
</table>

### Web Development
<table width="100%">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/web-server/">Web Server</a></td>
<td>Introduction to building web servers using Racket.</td>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/web-server/run.html">Servlets</a></td>
<td>Learn about creating and using servlets in Racket web applications.</td>
</tr>
<tr>
<td><a href="https://docs.racket-lang.org/json/index.html#:~:text=3%20Parsing%20JSON%20Text%20into%20JS%2DExpressions,-Link%20to%20this&text=Reads%20a%20jsexpr%20from%20a,remaining%20JSON%20input(s).">JSON Handling</a></td>
<td>An overview of working with JSON in Racket.</td>
</tr>
</table>

## Resources
<table width="100%">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://beautifulracket.com/">Beautiful Racket</a></td>
<td>This book teaches how to build domain-specific languages using Racket.</td>
</tr>
<tr>
<td><a href="https://github.com/greghendershott/racket-mode">Emacs Racket Mode</a></td>
<td>This project adds Racket support to Emacs.</td>
</tr>
</table>

## Courses

> Here are courses you may consider:
<table width="100%">
<tr>
<th>Resource Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="https://www.coursera.org/learn/programming-languages">Programming Languages, Part A</a></td>
<td>This Coursera course includes a module on Racket and functional programming.</td>
</tr>
<tr>
<td><a href="https://www.edx.org/course/how-to-code-simple-data">How to Code: Simple Data</a></td>
<td>This edX course, part of the "Fundamentals of Computing" series, teaches programming concepts using Racket.</td>
</tr>
</table>
## Conclusion

Racket is a versatile and powerful language ideal for learning functional programming, creating complex applications, and exploring language design. The resources and roadmap provided will help you on your journey to mastering Racket.

0 comments on commit 6e52ac9

Please sign in to comment.