RCaron 0.1.0

dotnet add package RCaron --version 0.1.0
NuGet\Install-Package RCaron -Version 0.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RCaron" Version="0.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add RCaron --version 0.1.0
#r "nuget: RCaron, 0.1.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install RCaron as a Cake Addin
#addin nuget:?package=RCaron&version=0.1.0

// Install RCaron as a Cake Tool
#tool nuget:?package=RCaron&version=0.1.0

RCaron

A .NET shell and scripting language. It is currently unusable as a shell, a little usable as a scripting language. You can also call it ř or Ř.

Documentation for the language is available at rcaron.jan0660.dev.

A simple number guessing game currently looks like this:

// we "open" a .NET namespace with open
open 'System'
// to use a .NET type we start it's name with a '#' and then access it's members with ':'
// from there we access the members of a variable, property or whatever with '.'
// variables don't have to be declared
$number = #Random:Shared.Next(1, 10000)
print 'Guess a number between 1 and 10000'
// 'loop' is a loop that can be exited with 'break'
loop {
    #Console:Write('Your guess: ')
    $guess = #Int32:Parse(#Console:ReadLine())
    // 'print' is a built-in function that prints arguments to the console with a space between them
    print 'You guessed:' $guess
    // operators look normal
    if ($guess < $number) {
        print 'Too low'
    }
    else if ($guess > $number) {
        print 'Too high'
    }
    else {
        print 'You guessed it!'
        break
    }
}
print 'congrats'

Getting started

See the documentation site.

Getting help

Try to find if anything on rcaron.jan0660.dev helps you.

You can start a new GitHub discussion.

Structure of this repository

This repository contains the following projects:

  • RCaron: The language itself
  • RCaron.Shell: The RCaron shell
  • RCaron.LibrarySourceGenerator: A source generator for creating libraries
  • RCaron.LibrarySourceGenerator.Attributes: Attributes for the source generator
  • RCaron.AutoCompletion: Auto completion that powers the language server and the shell
  • RCaron.LanguageServer: A Language Server Protocol implementation
  • RCaron.Tests: Unit tests
  • RCaron.FunLibrary: Experimental stuff
  • RCaron.Benchmarks: Just a basic benchmark for checking between language versions
  • RCaron.Jit: An expression tree compiler for the language, allowing for faster execution at the cost of a slower "dry" run
  • RCaron.Jit.Tests: Unit tests for the JIT (uses RCaron.Tests)
  • RCaron.Testing: Just some testing stuff
  • Rcaron.Cli: A basic command line interface, this is not the main RCaron experience
Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on RCaron:

Package Downloads
RCaron.AutoCompletion

Library for RCaron autocompletion.

RCaron.Jit

RCaron JIT-compiled using LINQ expression trees.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.1.0 185 4/28/2023
0.1.0-preview1 115 4/24/2023