All Projects → carp-lang → Carp

carp-lang / Carp

Licence: other
Carp is a programming language designed to work well for interactive and performance sensitive use cases like games, sound synthesis and visualizations.

Programming Languages

haskell
3896 projects
c
50402 projects - #5 most used programming language
shell
77523 projects
python
139335 projects - #7 most used programming language
Nix
1067 projects
powershell
5483 projects

Projects that are alternatives of or similar to Carp

Lambda Lantern
🧙 ‎‎ A 3D game about functional programming patterns. Uses PureScript Native, C++, and Panda3D.
Stars: ✭ 122 (-97.22%)
Mutual labels:  game-development, gamedev, functional-programming, functional
Gameproject3
游戏服务器框架,网络层分别用SocketAPI、Boost Asio、Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。还包含一个不断完善的Unity 3D客户端,客户端含大量完整资源,坐骑,宠物,伙伴,装备, 这些均己实现上阵和穿戴, 并可进入副本战斗,多人玩法也己实现, 持续开发中。
Stars: ✭ 655 (-85.08%)
Mutual labels:  game-development, gamedev, games
Ultralight
Next-generation HTML renderer for apps and games
Stars: ✭ 3,585 (-18.32%)
Mutual labels:  game-development, gamedev, games
Glide
Game engine for making 2d games on iOS, macOS and tvOS, with practical examples and tutorials
Stars: ✭ 353 (-91.96%)
Mutual labels:  game-development, gamedev, games
Ramtuary
Ramda + Ramda Fantasy + Sanctuary REPL 🌿
Stars: ✭ 72 (-98.36%)
Mutual labels:  functional-programming, functional, repl
Pixelvision8
Pixel Vision 8's core philosophy is to teach retro game development with streamlined workflows. PV8 is also a platform that standardizes 8-bit fantasy console limitations built on top of the open-source C# game engine based on MonoGame.
Stars: ✭ 773 (-82.39%)
Mutual labels:  game-development, gamedev, games
Games
🎮 A list of popular/awesome video games, add-ons, maps, etc. hosted on GitHub. Any genre. Any platform. Any engine.
Stars: ✭ 18,676 (+325.52%)
Mutual labels:  game-development, gamedev, games
Everpuzzle
Tetris Attack / Pokemon Puzzle style game written in Rust
Stars: ✭ 88 (-97.99%)
Mutual labels:  game-development, gamedev, games
Magictools
🎮 📝 A list of Game Development resources to make magic happen.
Stars: ✭ 8,853 (+101.71%)
Mutual labels:  game-development, gamedev, games
Beaverandfairies
Stars: ✭ 14 (-99.68%)
Mutual labels:  game-development, gamedev, games
Excalibur
🎮 An easy to use 2D HTML5 game engine written in TypeScript
Stars: ✭ 892 (-79.68%)
Mutual labels:  game-development, gamedev, games
Flaxapi
Old repository with C# Editor and C# API for creating games in Flax Engine
Stars: ✭ 131 (-97.02%)
Mutual labels:  game-development, gamedev, games
Glas
WebGL in WebAssembly with AssemblyScript
Stars: ✭ 278 (-93.67%)
Mutual labels:  game-development, gamedev, games
Spheredissolve
Customizable procedural spherical dissolve shader for Unity3D, for all your customizable procedural spherical dissolve needs!
Stars: ✭ 311 (-92.91%)
Mutual labels:  game-development, gamedev
Quack
🐤 A multi-paradigm programming language with gradual and duck typing that targets PHP and JS
Stars: ✭ 309 (-92.96%)
Mutual labels:  functional-programming, repl
Game
⚔️ An online JavaScript 2D Medieval RPG.
Stars: ✭ 388 (-91.16%)
Mutual labels:  game-development, gamedev
Coconut
Simple, elegant, Pythonic functional programming.
Stars: ✭ 3,422 (-22.03%)
Mutual labels:  functional-programming, functional
Godex
Godex is a Godot Engine ECS library.
Stars: ✭ 307 (-93.01%)
Mutual labels:  game-development, gamedev
Pygame
pygame (the library) is a Free and Open Source python programming language library for making multimedia applications like games built on top of the excellent SDL library. C, Python, Native, OpenGL.
Stars: ✭ 4,164 (-5.13%)
Mutual labels:  game-development, gamedev
Gdk For Unity
SpatialOS GDK for Unity
Stars: ✭ 296 (-93.26%)
Mutual labels:  game-development, games

Carp

Logo

Linux CI MacOS CI Windows CI

WARNING! This is a research project and a lot of information here might become outdated and misleading without any explanation. Don't use it for anything important just yet!

Version 0.5.3 of the language is out!

About

Carp is a programming language designed to work well for interactive and performance sensitive use cases like games, sound synthesis and visualizations.

The key features of Carp are the following:

  • Automatic and deterministic memory management (no garbage collector or VM)
  • Inferred static types for great speed and reliability
  • Ownership tracking enables a functional programming style while still using mutation of cache-friendly data structures under the hood
  • No hidden performance penalties – allocation and copying are explicit
  • Straightforward integration with existing C code
  • Lisp macros, compile time scripting and a helpful REPL

Learn more

Join the chat at https://gitter.im/eriksvedang/Carp

A Very Small Example

(load-and-use SDL)

(defn tick [state]
  (+ state 10))

(defn draw [app rend state]
  (bg rend &(rgb (/ @state 2) (/ @state 3) (/ @state 4))))

(defn main []
  (let [app (SDLApp.create "The Minimalistic Color Generator" 400 300)
        state 0]
    (SDLApp.run-with-callbacks &app SDLApp.quit-on-esc tick draw state)))

For instructions on how to run Carp code, see this document.

For more examples, check out the examples directory.

Maintainers

Contributing

Thanks to all the awesome people who have contributed to Carp over the years!

We are always looking for more help – check out the contributing guide to get started.

License

Copyright 2016 - 2021 Erik Svedäng

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

The regular expression implementation as found in src/carp_regex.h are Copyright (C) 1994-2017 Lua.org, PUC-Rio under the terms of the MIT license. Details can be found in the License file LUA_LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].