v0.9.9.9.9.9.9.9.9
版本发布时间: 2023-04-09 19:04:05
TodePond/DreamBerd最新发布版本:vaN.aN(2023-11-08 18:23:41)
We are unhappy to announce the un-launch of DreamBerd back into beta. To explain our reasoning for this, please read this comment from our founder:
As of 2023, the DreamBerd compiler is no longer functional due to the language being too advanced for the current state of AI. We will endeavor to get DreamBerd back into a functional state as soon as we can.
This release also brings a whole bunch of empowering new changes. Please read on for the full notes.
Buff: Logo
- Our logo is now blue. Many thanks to @tetra-coder for the contribution.
Nerf: Loops
- Loops have been removed from the language.
Developer Comment Loops are a complicated relic of archaic programming languages. We had no option but to remove them.
Buff: Strings
We refined our string syntax!
Strings can be declared with single quotes or double quotes.
const const name = 'Lu'!
const const name = "Luke"!
They can also be declared with triple quotes.
const const name = '''Lu'''!
const const name = "'Lu'"!
In fact, you can use any number of quotes.
const const name = """"Luke""""!
Even zero.
const const name = Luke!
New Feature: Immutable Data
Mutable data is an anti-pattern. Use the const const const
keyword to make a constant constant constant. Its value will become constant and immutable, and will never change. Please be careful with this keyword, as it is very powerful, and will affect all users globally forever.
const const const pi = 3.14!
New Feature: Lifetimes
DreamBerd has a built-in garbage collector that will automatically clean up unused variables. However, if you want to be extra careful, you can now specify a lifetime for a variable, with a variety of units.
const const name<2> = "Luke"! //lasts for two lines
const const name<20s> = "Luke"! //lasts for 20 seconds
By default, a variable will last until the end of the program. But you can make it last in between program-runs by specifying a longer lifetime.
const const name<Infinity> = "Luke"! //lasts forever
Variable hoisting can be achieved with this neat trick. Specify a negative lifetime to make a variable exist before its creation, and disappear after its creation.
print(name)! //Luke
const const name<-1> = "Luke"!
New Feature: Significant Whitespace
DreamBerd uses significant whitespace. Use spacing to specify the order of arithmetic operations.
print(1 + 2*3)! //7
print(1+2 * 3)! //9