Giter Site home page Giter Site logo

dreamberd's Introduction

dreamberd's People

Contributors

12emin34 avatar alifeee avatar cute-catgirl avatar debitcardz avatar eltociear avatar endermanbugzjfc avatar gearsdatapacks avatar jonyk56 avatar karolstawowski avatar labbo-lab avatar loglot avatar lysatk avatar maeek avatar magnogen avatar mybearworld avatar naveen17797 avatar necas209 avatar nieboczek avatar pomierski avatar spdegabrielle avatar spiffytech avatar stohrendorf avatar teijo avatar thegatesdev avatar thejeffreykuo avatar todepond avatar trident09 avatar ultragreed avatar unecro avatar vabka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dreamberd's Issues

There should be more stars please help!!!!!!!!!!!!!!!!!!!!!!!!

  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • 399
  • 400
  • 401
  • 402
  • 403
  • 404
  • 405
  • 406
  • 407
  • 408
  • 409
  • 410
  • 411
  • 412
  • 413
  • 414
  • 415
  • 416
  • 417
  • 418
  • 419
  • 420
  • 421
  • 422
  • 423
  • 424
  • 425
  • 426
  • 427
  • 428
  • 429
  • 430
  • 431
  • 432
  • 433
  • 434
  • 435
  • 436
  • 437
  • 438
  • 439
  • 440
  • 441
  • 442
  • 443
  • 444
  • 445
  • 446
  • 447
  • 448
  • 449
  • 450
  • 451
  • 452
  • 453
  • 454
  • 455
  • 456
  • 457
  • 458
  • 459
  • 460
  • 461
  • 462
  • 463
  • 464
  • 465
  • 466
  • 467
  • 468
  • 469
  • 470
  • 471
  • 472
  • 473
  • 474
  • 475
  • 476
  • 477
  • 478
  • 479
  • 480
  • 481
  • 482
  • 483
  • 484
  • 485
  • 486
  • 487
  • 488
  • 489
  • 490
  • 491
  • 492
  • 493
  • 494
  • 495
  • 496
  • 497
  • 498
  • 499
  • 500
  • 501
  • 502
  • 503
  • 504
  • 505
  • 506
  • 507
  • 508
  • 509
  • 510
  • 511
  • 512
  • 513
  • 514
  • 515
  • 516
  • 517
  • 518
  • 519
  • 520
  • 521
  • 522
  • 523
  • 524
  • 525
  • 526
  • 527
  • 528
  • 529
  • 530
  • 531
  • 532
  • 533
  • 534
  • 535
  • 536
  • 537
  • 538
  • 539
  • 540
  • 541
  • 542
  • 543
  • 544
  • 545
  • 546
  • 547
  • 548
  • 549
  • 550
  • 551
  • 552
  • 553
  • 554
  • 555
  • 556
  • 557
  • 558
  • 559
  • 560
  • 561
  • 562
  • 563
  • 564
  • 565
  • 566
  • 567
  • 568
  • 569
  • 570
  • 571
  • 572
  • 573
  • 574
  • 575
  • 576
  • 577
  • 578
  • 579
  • 580
  • 581
  • 582
  • 583
  • 584
  • 585
  • 586
  • 587
  • 588
  • 589
  • 590
  • 591
  • 592
  • 593
  • 594
  • 595
  • 596
  • 597
  • 598
  • 599
  • 600
  • 601
  • 602
  • 603
  • 604
  • 605
  • 606
  • 607
  • 608
  • 609
  • 610
  • 611
  • 612
  • 613
  • 614
  • 615
  • 616
  • 617
  • 618
  • 619
  • 620
  • 621
  • 622
  • 623
  • 624
  • 625
  • 626
  • 627
  • 628
  • 629
  • 630
  • 631
  • 632
  • 633
  • 634
  • 635
  • 636
  • 637
  • 638
  • 639
  • 640
  • 641
  • 642
  • 643
  • 644
  • 645
  • 646
  • 647
  • 648
  • 649
  • 650
  • 651
  • 652
  • 653
  • 654
  • 655
  • 656
  • 657
  • 658
  • 659
  • 660
  • 661
  • 662
  • 663
  • 664
  • 665
  • 666
  • 667
  • 668
  • 669
  • 670
  • 671
  • 672
  • 673
  • 674
  • 675
  • 676
  • 677
  • 678
  • 679
  • 680
  • 681
  • 682
  • 683
  • 684
  • 685
  • 686
  • 687
  • 688
  • 689
  • 690
  • 691
  • 692
  • 693
  • 694
  • 695
  • 696
  • 697
  • 698
  • 699
  • 700
  • 701
  • 702
  • 703
  • 704
  • 705
  • 706
  • 707
  • 708
  • 709
  • 710
  • 711
  • 712
  • 713
  • 714
  • 715
  • 716
  • 717
  • 718
  • 719
  • 720
  • 721
  • 722
  • 723
  • 724
  • 725
  • 726
  • 727
  • 728
  • 729
  • 730
  • 731
  • 732
  • 733
  • 734
  • 735
  • 736
  • 737
  • 738
  • 739
  • 740
  • 741
  • 742
  • 743
  • 744
  • 745
  • 746
  • 747
  • 748
  • 749
  • 750
  • 751
  • 752
  • 753
  • 754
  • 755
  • 756
  • 757
  • 758
  • 759
  • 760
  • 761
  • 762
  • 763
  • 764
  • 765
  • 766
  • 767
  • 768
  • 769
  • 770
  • 771
  • 772
  • 773
  • 774
  • 775
  • 776
  • 777
  • 778
  • 779
  • 780
  • 781
  • 782
  • 783
  • 784
  • 785
  • 786
  • 787
  • 788
  • 789
  • 790
  • 791
  • 792
  • 793
  • 794
  • 795
  • 796
  • 797
  • 798
  • 799
  • 800
  • 801
  • 802
  • 803
  • 804
  • 805
  • 806
  • 807
  • 808
  • 809
  • 810
  • 811
  • 812
  • 813
  • 814
  • 815
  • 816
  • 817
  • 818
  • 819
  • 820
  • 821
  • 822
  • 823
  • 824
  • 825
  • 826
  • 827
  • 828
  • 829
  • 830
  • 831
  • 832
  • 833
  • 834
  • 835
  • 836
  • 837
  • 838
  • 839
  • 840
  • 841
  • 842
  • 843
  • 844
  • 845
  • 846
  • 847
  • 848
  • 849
  • 850
  • 851
  • 852
  • 853
  • 854
  • 855
  • 856
  • 857
  • 858
  • 859
  • 860
  • 861
  • 862
  • 863
  • 864
  • 865
  • 866
  • 867
  • 868
  • 869
  • 870
  • 871
  • 872
  • 873
  • 874
  • 875
  • 876
  • 877
  • 878
  • 879
  • 880
  • 881
  • 882
  • 883
  • 884
  • 885
  • 886
  • 887
  • 888
  • 889
  • 890
  • 891
  • 892
  • 893
  • 894
  • 895
  • 896
  • 897
  • 898
  • 899
  • 900
  • 901
  • 902
  • 903
  • 904
  • 905
  • 906
  • 907
  • 908
  • 909
  • 910
  • 911
  • 912
  • 913
  • 914
  • 915
  • 916
  • 917
  • 918
  • 919
  • 920
  • 921
  • 922
  • 923
  • 924
  • 925
  • 926
  • 927
  • 928
  • 929
  • 930
  • 931
  • 932
  • 933
  • 934
  • 935
  • 936
  • 937
  • 938
  • 939
  • 940
  • 941
  • 942
  • 943
  • 944
  • 945
  • 946
  • 947
  • 948
  • 949
  • 950
  • 951
  • 952
  • 953
  • 954
  • 955
  • 956
  • 957
  • 958
  • 959
  • 960
  • 961
  • 962
  • 963
  • 964
  • 965
  • 966
  • 967
  • 968
  • 969
  • 970
  • 971
  • 972
  • 973
  • 974
  • 975
  • 976
  • 977
  • 978
  • 979
  • 980
  • 981
  • 982
  • 983
  • 984
  • 985
  • 986
  • 987
  • 988
  • 989
  • 990
  • 991
  • 992
  • 993
  • 994
  • 995
  • 996
  • 997
  • 998
  • 999

Chirp cheepcheep cheep chirp tweet DreamBerd chirp

Cheep cheep chirp, tweetwoo chirp chip chirp chirrrp.

Chirp chirip chirp cheepchirp cheep cheep? Cheep chirp cheep! Cheepcheep tweet tweetwoo:

cheepcheep main(a) => {
   chirp 'Hello, ' + a!
}
main('World!')?

Cheep chirp tweet, chirp tweet tweet chirp.

Tweet tweet chip?

get sponsored

I feel like this project should attract some sponsorship or VC funding or something. any ideas on who would be interested?

noting down some ideas...

  • Nintendo (they said no)
  • WHSmith
  • Tesco
  • DreamBerd
  • Jonathan Blow (for those of you who don't know, jonny is a web developer with lots of experience in unreleased languages)

const is not Constant enough

If I define a const const, I want it constant dammit!

I think constants should remain set for the lifetime of the computer.

Time Travel Issues

I accidentally ran

const const const Date.now() -= 10000

and now im stuck in a

I accidentally ran

const const const Date.now() -= 10000

and now im stuck in a

I accidentally ran

const const const Date.now() -= 10000

and now im stuck in a

I accidentally ran

const const const Date.now() -= 10000

and now im stuck in a

I accidentally ran

const const const Date.now() -= 10000

and now im stuck in a

I accidentally ran

const const const Date.now() -= 10000

and now im stuck in a

I accidentally ran

const const const Date.now() -= 10000

and now im stuck in a

I accidentally ran

const const const Date.now() -= 10000

and now im stuck in a

DBX

Add support for DBX and use it to roast react and bun etc

Suggestion for AI powered Fuzzy standard library function names

I have a bad memory and can never remember common utility function names across various languages so it would be good if all synonyms (or even words close together in semantic space) map to the same function. I call it fuzzy functions or fuzzions.

"hello world".includes("world")! //true
"hello world".has("world")! //true
"hello world".contains("world")! //true
"hello world".substr("world")! //true
"world".isPartOf("hello world")! //true

"hello world".length! //11
"hello world".size! //11
"hello world".howManyCharactersAreInThisString()? //11

to enable this we can use ChatGPT but API calls are too expensive for me. Instead I suggest we use the chat interface which is free. DreamBerd should come bundled with a chrome webdriver. During compilation it will open a new browser window and use puppeteer/playwright/selenium to copy and paste in the function name into chatgpt with the prompt "What do you think this function does based on its name?"

after / before keywords for events

before ("click") (e) => print("You're just about to click!")
after ("click") (e) => print("You clicked!")

just need to make it funny somehow

Copilot

it should really be highlighted that github copilot doesn't understand dreamberd, which means that Microsoft won't steal your code.

this is great for when you want to keep your open-source code closed.

Add Regex type

It could be used to create a type that allows assigining email address only

Consider following example:

const const email: Regex<(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])> = "[email protected]"!

I study tuples in university and DreamBerd should have a cutting edge implementation

Tuples

Tuples are like arrays, but with exactly two elements that might have different types:

const const scores = [A, 90]!

Actually they can have more than two elements, as long as the tuples are nested

const const scores = [[A, 90], [B, 80]]!

To make defining tuples more convenient, you can drop the brackets and just use a comma with no whitespace in the same way you would to control evaluation order.

const const scores = [A,90, B,80]! // equivalent to [[A, 90], [B, 80]]

Tuple indexing takes advantage of the fact that integers are arrays of digits, but is otherwise identical to arrays. DreamBerd knows that tuples can only have two elements, so all non-zero digits are treated as -1.

const const scores = [A,90, B,80]!

print(scores[-10])! //90
print(scores[15])! //A

Feature : Overriding a primitive value ?

As a dynamic language, I wrote the following code :

3=2!!!
print((1+1) ==== 3)!

But for some odd reason, it doesn't work as expected and prints false!
Please consider adding this feature as soon as possible

RFC: Bonus features for vim users (draft)

Would love to see a few features only available to vim users. No vscode ports please.

auto repl

print([3, 2, 5][-1])! //3

//3 is auto inserted.

quit function

quit()!

A quit function to help users exit to the shell.

repl integration with quit

This ensures quit doesn’t get executed a second time on relaunch.

quit()! //done

Add new data type - delegate(πŸƒπŸ»)

A delegate(πŸƒπŸ») is a type that represents references to methods anything. When you instantiate a delegate, you can associate its instance with any method thing with a compatible signature and return type. You can call the method everything through the delegate instance. Unlike Microsoft Java delegates, DreamBerd delegates return a random thing out of all things passed as a delegate's instance parameter.

Example of usage:

const const πŸ‘·πŸ»β€β™‚οΈ: πŸƒπŸ» = new πŸƒπŸ»()!!!

const const 🏎: Char[] = "Max"!
const const 🐒: Char[] = "Lewis"!
const const one: Int3 = 1!
const const truth: Boolean = True!
const const dateNow: Number = Date.now()!
fn add (a, b) => a + b!

var var πŸ•΄πŸ» = πŸ‘·πŸ»β€β™‚οΈ(🏎)!
πŸ•΄πŸ» = πŸ‘·πŸ»β€β™‚οΈ(🐒)!
πŸ•΄πŸ» = πŸ‘·πŸ»β€β™‚οΈ(one)!
πŸ•΄πŸ» = πŸ‘·πŸ»β€β™‚οΈ(truth)!
πŸ•΄πŸ» = πŸ‘·πŸ»β€β™‚οΈ(dateNow)!
πŸ•΄πŸ» = πŸ‘·πŸ»β€β™‚οΈ(add)!

print(πŸ•΄πŸ»)! // prints random value out of things passed - "Max", "Lewis", 1, True, 1672872867639 or Error: Can't cast a funct without providing arguments!

Delegate add please. Reference good. Value bad.

Some `maybe` questions

if (maybe) print("maybe is true")!
if (;maybe) print("maybe is false")!

Some possible options:

  • if (maybe) can run randomly, so maybe and ;maybe can mean the same thing
    • what would happen with variables?
      const const thingy = maybe!
      if (thingy) print("first is true")!
      if (thingy) print("maybe s are evaluated when assigned, rather than when called")!
      In this case, thingy == thingy will always be true, but thingy == true could be true or false, and thingy == false could be false or true.
    • How would maybe be differentiated from true and false?
  • if (maybe) and if (;maybe) can never run, almost like a trinary thing? Then something like maybe == maybe would be true?
    • This would help with differentiating, but it would need something else for this kind of thing. Perhaps something like
      if (thingy == maybe) {
          // executes if it's maybe
      } else {
          // executes if it's a traditional boolean
      }
      Or something similar? Maybe even
      if ( ... ) {
          // executes when true
      } else {
          // executes when false
      } perhaps {
          // executes when maybe
      }!

I'd love to hear your thoughts

Boolean-not operator feature contains four spaces

Hey. We use DreamBerd in production and we ran into the following problem while trying to resolve a credit card payment (anonymousified):

if (;false) {
    print("Hello world")!
}

After exhaustively debugging we found that the solution was (again anonymousified)

if (;false) {
   print("Hello world")!
}

Loss of precision in booleans

  • Problem : With the current implementation, boolean encoding is lossy
  • How to reproduce :
    • set false, true and maybe with equiprobability in a boolean variable
    • print variable
    • the wrong value is printed sometimes
  • Analysis :
    Assuming same probability for false, true, and maybe, log2(3) = 1.58496250072... > 1.5 bits are required to properly encode each boolean
  • Suggested solutions :
    • bump booleans to 1.6 bits (increased memory usage)
    • use non equiprobable booleans to store data more efficiently (risk of API incompatibility)

Plagiarism

image

🚨🚨🚨🚨🚨🚨🚨🚨
Please find and remove the plagiarism immediately.

Suggestion for Dates

In order to be scalable for the future, years should be represented as two digits since the next century:

const const year = Date.now().year()

print(year) // -77

Standard library implementations: Quantum BogoSort

It's obvious a std lib sort() function on arrays in dreamberd should mutate in place. We can't have copies being thrown around, unless of course you declare a const const const or a var const.
So the .sort method on arrays will return a randomly sorted array (most of the time) however, there will be an instance where this will return a sorted array in O(1) time. So if I read the docs correctly..
when ;array.sort()
will essentially run Quantum bogo sort in a loop until it's sorted. This may be one of the greatest breakthrough's in modern computing.
Should run in O(?log ?) time and O(1) space.

Restrict the characters used for naming variables.

As of now, the specification says that "both variables and constants can be named with any Unicode character or string."

It poses a problem because then, variables could be named with the space symbol ( ) which would inevitably lead to parsing errors, because parsing is hard and the current compiler is not happy when I tell it to use spaces as variables.
I propose that the character set allowed is reduced to "any Unicode character or string, except the whitespace ( ) character and strings which contain it".

To be clear, we still should be able to use some whitespace or blank characters, such as Β  (alt+255), tab, newline, and others. First of all, because that rocks; second, because it means we can write variables like in inform7 that look like full sentences; finally, because any user of the code might want to port their whitespace codebase to DreamBeard and assigning white characters to instructions can make it happen. I think the spec should make it clear that DreamBerd is so perfect that it even is compatible with the whitespace programming language.

Deleting numbers should be more forgiving

delete 4!
(3 + 1)?
// The next number after 3
// Which isn't 4 as it's deleted
// So this program outputs 5

And because integers are stored as arrays of digits, it would make sense that:

delete 4!
(39 + 2)?
// It would usually be 41, but 4 is deleted
// So it would be 51

uhhhh....

I was playing around and accidentally wrote:

const const const fave = "Neil Diamond"!

Is there any way out of this or are we stuck forever?

Not enough stars

There aren't enough stars on this repo. Please give a star to help out!

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

[Feature Idea] Function assignment returns?

A cool way to do function returns, without the return keyword! (adapted from hawkw/HawkLang.md)

The idea

(Function syntax hasn't really been specified yet, so I'll just do what's showed in the booleans section)

The premise is, replace return ... with name_of_function() = ...! There are a few interesting consequences of this, but could it work? Maybe...

function fib(x) => {
    if (x <= 0) fib(x) = 0!
    if (x == 1 || x == 2) fib(x) = x!
    fib(x) = fib(x - 1) + fib(x - 2)!
}

This also has the wonderful consequence of having to rename all of your return statements if you rename the function!

An interesting way to extend this is by using conditions in the argument slots for implicit ifs!

This code does exactly the same thing as the one above, but makes the programmer think of it in a different way!

function fib(x) => {
    fib(x <= 0) = 0!
    fib(x == 1 || x == 2) = x!
    fib(x) = fib(x - 1) + fib(x - 2)!
}

I'm not sure what would happen if another function is used for the return statement, maybe it'll return a value from that one, if it's nested in it? Idk that'd be pretty weird... Maybe a bit too weird even for berds!!1!

function a() => {
    b()!
    a() = "I dont run?!"!
}
function b() => {
    a() = "I do!"!
    "but then does this output?"?
    b() = "returned from b()"!
}
a()?
// but what would happen with 
b()?
// an error?
// printing "but then does this output?" and then outputting "returned from b()"?
// would it depend on if `b()` was called by `a()`?
// side note: github syntax highlight really doesnt like using ! instead of ; lol

I enjoyed doing this little (maybe not so little) write-up! What do you think?

Negating Numbers, and Logical Not

; is a logical not, and traditionally, negating numbers uses a -. It's sort of a similar thing, right?

  • They're both reversible (;;a == a && --a == a)
  • They also both have one to one mapping (a only has one value for -a, and vice versa. a only has one value for ;a, and vice versa)

Why not just remove the -, and make negative 3 be described with ;3?

It also makes a nice winking face ;3

HuggingChat is smart enough to crack DreamBerd!

You thought that AI is too dumb for DreamBerd, well you likely didn't test it on HuggingChat, an AI model that mixes all of the best AI chat models into one, and CAN run DreamBerd code(kinda).
well, it got it reversed but when it gets an update it will be way scarier
dreamberdai

Add COME FROM statement

While I admire your dedication to keeping this language simple, I have found that even simple examples would require a looping construct. For consistency with the "when" and "exports to" statements, I propose that DreamBerd adopts the classic "come from" statement (https://dl.acm.org/doi/pdf/10.1145/358027.358043) as well. It redirects control flow to its line if the control flow has reached the given line.

This will become clear with an example. We can compute the n-th Fibonacci number like this:

fto fip (n) => {
   var const i = 0!
   var const m = 0!
   var const k = 1!
   come from 11!
   const const tmp = k + m!
   m = k!
   k = tmp!
   i = i +1!
   if(; i < n) {
     return k!
   }
   
}

Notice that the empty line at the bottom is crucial since it is the point at which the control flow enters the loop again. To remain consistent with arrays, line numbers start at -1.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.