jdBasic Try Online
Basics Arrays Functions Maps/JSON Files/CSV Web API Graphics Async AI/Tensors Show All

jdBasic Examples
copy, paste, run

Fast reference examples for jdBasic. Open the REPL and paste any snippet. Most examples are small on purpose — great for learning and remixing.

Open Web REPL → Official Manual →

Tip: click a category pill to filter examples. Use Ctrl+F to search.

Examples library

Hello World + Comments

' Comments start with an apostrophe
PRINT "Hello, World!"
PRINT "Welcome to jdBasic"

Input + Strings ($ suffix)

INPUT "What is your name? "; name$
PRINT "Hello, "; name$

greeting$ = "Welcome to jdBasic"
PRINT greeting$

IF / ELSE / ENDIF

INPUT "Guess the secret word: "; guess$

IF LCASE$(guess$) = "basic" THEN
  PRINT "You guessed it!"
ELSE
  PRINT "Nope."
ENDIF

FOR / NEXT (loop)

FOR i = 1 TO 5
  PRINT "Iteration: "; i
NEXT i

Arrays + Element-wise Math

my_numbers = [10, 20, 30, 40, 50]
my_numbers = my_numbers * 2 + 5
PRINT my_numbers

More: Advanced arrays →

DIM Array + Indexing

' Declare 20 elements, index 0..19
DIM A[20]

FOR i = 0 TO 19
  A[i] = i * 2
NEXT i

PRINT "A[9] = "; A[9]

Matrix Math (MATMUL)

A = [[1, 2], [3, 4]]
B = [[5, 6], [7, 8]]
C = MATMUL(A, B)
PRINT C

Functions + Higher-Order (SELECT)

FUNC SQUARE_IT(x)
  RETURN x * x
ENDFUNC

result = SELECT(SQUARE_IT@, [1, 2, 3, 4])
PRINT result  ' [1, 4, 9, 16]

SUB vs FUNC

SUB GreetUser(name$)
  PRINT "Hello, "; name$; "!"
ENDSUB

FUNC Add(a, b)
  RETURN a + b
ENDFUNC

GreetUser("Alice")
PRINT Add(10, 32)

Map (Dictionary) Basics

DIM person AS MAP
person{"name"} = "John Doe"
person{"age"} = 42

IF MAP.EXISTS(person, "name") THEN
  PRINT "Name: "; person{"name"}
ENDIF

Parse JSON + Read Nested Fields

RESPONSE$ = '{"choices":[{"message":{"content":"Hello!"}}]}'
obj = JSON.PARSE$(RESPONSE$)
msg$ = obj{"choices"}[0]{"message"}{"content"}
PRINT msg$

Read a Text File (TXTREADER$)

file_content$ = TXTREADER$("my_file.txt")
PRINT file_content$

Read CSV into 2D Array (CSVREADER)

' Load CSV, skip header row
data = CSVREADER("temps.csv", ",", TRUE)
PRINT "Rows: "; LEN(data)
PRINT "First row: "; data[0]

Tiny JSON API (Built-in HTTP server)

FUNC HandleApi(request)
  response = {
    "status": "ok",
    "path": request{"path"},
    "server_time": NOW()
  }
  RETURN response
ENDFUNC

HTTP.SERVER.ON_POST "/api/info", "HandleApi"
HTTP.SERVER.START(8080)

Graphics Loop + Sprites

SCREEN 800, 600, "My Game"
SPRITE.LOAD 1, "enemy.png"
ENEMY_ID = SPRITE.CREATE(1, 100, 100)
SPRITE.SET_VELOCITY ENEMY_ID, 20, 15

DO
  CLS
  SPRITE.UPDATE
  SPRITE.DRAW_ALL 0, 0
  SCREENFLIP

  A$ = INKEY$()
  SLEEP 20
LOOP UNTIL A$ > ""

More: Build games with BASIC →

Async / Await (non-blocking tasks)

ASYNC FUNC DOWNLOADFILE(url$, duration)
  FOR i = 1 TO duration
    ' work...
  NEXT i
  RETURN "Download of " + url$ + " successful."
ENDFUNC

task1 = DOWNLOADFILE("https://example.com/file.zip", 5)
result1 = AWAIT task1
PRINT result1

Tensors + Autodiff (Backprop)

A = TENSOR.FROM([[1, 2], [3, 4]])
B = TENSOR.FROM([[5, 6], [7, 8]])

C = TENSOR.MATMUL(A, B)
TENSOR.BACKWARD C

PRINT "Tensor output:"
PRINT FRMV$(TENSOR.TOARRAY(C))

More: AI with BASIC →

List Files (DIR) + Print Working Dir

PRINT "Current dir:"
PWD

PRINT "Files:"
DIR

Next steps

New to jdBasic?

Start with the guided basics.

Learn BASIC programming →

Want games?

Sprites, loops, input, sound.

Build a game →

Want the “killer feature”?

APL-style array power.

Advanced arrays →