Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Programming languages - "Racket" Complete Resources #1157

Merged
merged 14 commits into from
Jun 17, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
aditya-bhaumik marked this conversation as resolved.
Show resolved Hide resolved
<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.
Loading