This is inspired by A half-hour to learn Rust and Zig in 30 minutes.
Your first Go program as a classical "Hello World" is pretty simple:
First we create a workspace for our project:
THIS GIST IS OUT OF DATE! Please use my new project template here to get started with Zig on Playdate: | |
https://github.com/DanB91/Zig-Playdate-Template | |
The rest of this is preservied for historical reasons: | |
This is a small snippet of some code to get you started for developing for the Playdate on Zig. This code should be used as a starting point and may not compile without some massaging. This code has only been tested out on macOS and you'll need to modify the addSharedLibrary() portion of build.zig to output a .dll or .so instead of a .dylib, depending on you platform. | |
This code will help you produce both an executable for the Playdate simulator and also an executable that actually run on the Playdate hardware. |
This is inspired by A half-hour to learn Rust and Zig in 30 minutes.
Your first Go program as a classical "Hello World" is pretty simple:
First we create a workspace for our project:
This is inspired by https://fasterthanli.me/blog/2020/a-half-hour-to-learn-rust/
the command zig run my_code.zig
will compile and immediately run your Zig
program. Each of these cells contains a zig program that you can try to run
(some of them contain compile-time errors that you can comment out to play
with)
const std = @import("std"); | |
pub fn Algebra(comptime fields: []const type) type { | |
return struct{ | |
pub fn @"<+>"(a: anytype, b: anytype) FieldFor(@TypeOf(a), @TypeOf(b)).Type { | |
const F: type = FieldFor(@TypeOf(a), @TypeOf(b)); | |
return F.@"<+>"(a, b); | |
} | |
pub fn FieldFor(comptime AType: type, comptime BType: type) type { |
defmodule Lisp do | |
@type ast :: [String.t | number | ast] | |
@type token :: :lp | :rp | number | String.t | |
@letters Enum.concat(?a..?z, ?A..?Z) | |
@numbers ?0..?9 | |
@operators [?+] | |
@doc """ |
#lang racket | |
;; Ishido Game Implementation | |
;; Copyright (c) 2020 Alex Harsányi (AlexHarsanyi@gmail.com) | |
;; Permission is hereby granted, free of charge, to any person obtaining a | |
;; copy of this software and associated documentation files (the "Software"), | |
;; to deal in the Software without restriction, including without limitation | |
;; the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
;; and/or sell copies of the Software, and to permit persons to whom the |
#lang racket | |
;; Markdown Viewer | |
;; Copyright (c) 2020 Alex Harsányi (AlexHarsanyi@gmail.com) | |
;; Permission is hereby granted, free of charge, to any person obtaining a | |
;; copy of this software and associated documentation files (the "Software"), | |
;; to deal in the Software without restriction, including without limitation | |
;; the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
;; and/or sell copies of the Software, and to permit persons to whom the |
/* ******************************************************************************************* | |
* TAILWIND.CSS | |
* DOCUMENTATION: https://tailwindcss.com/ | |
* ******************************************************************************************* */ | |
/* | |
* Available breakpoints | |
* -------------------- | |
* sm: min-width: 640px; | |
* md: min-width: 768px; |
;; A tetris game -- partial implementation, part 5 | |
;; Copyright (c) 2020 Alex Harsányi (AlexHarsanyi@gmail.com) | |
;; Permission is hereby granted, free of charge, to any person obtaining a | |
;; copy of this software and associated documentation files (the "Software"), | |
;; to deal in the Software without restriction, including without limitation | |
;; the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
;; and/or sell copies of the Software, and to permit persons to whom the | |
;; Software is furnished to do so, subject to the following conditions: |
;; A tetris game -- partial implementation, part 4 | |
;; Copyright (c) 2020 Alex Harsányi (AlexHarsanyi@gmail.com) | |
;; Permission is hereby granted, free of charge, to any person obtaining a | |
;; copy of this software and associated documentation files (the "Software"), | |
;; to deal in the Software without restriction, including without limitation | |
;; the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
;; and/or sell copies of the Software, and to permit persons to whom the | |
;; Software is furnished to do so, subject to the following conditions: |