Skip to content

Instantly share code, notes, and snippets.

View bjjb's full-sized avatar

JJ Buckley bjjb

View GitHub Profile
@bjjb
bjjb / rover.lisp
Created October 15, 2020 22:24
A Common Lisp solution for the Mars Rover exercise
;;; Mars Rover
(defun move (rover cmd)
(let ((compass '(NORTH EAST SOUTH WEST)))
(let ((x (caar rover))
(y (cadar rover))
(h (cadr rover)))
(let ((dd (case cmd ('F 1) ('B -1) (otherwise 0)))
(dh (case cmd ('R 1) ('L -1) (otherwise 0)))
(dx (case h ('EAST 1) ('WEST -1) (otherwise 0)))
@bjjb
bjjb / main.go
Created November 2, 2021 15:56
spf13/cobta completion example
// Package main is an example of using dynamic command-line completion with
// github.com/spf13/cobra.
package main
import (
"fmt"
"os"
"time"
"github.com/spf13/cobra"
@bjjb
bjjb / main.rs
Last active February 2, 2022 16:26
A Rust implementation of the Mars Rover exercise.
use rover::Rover;
use std::{env, io};
fn main() {
let mut r = match Rover::from_args(env::args()) {
Ok(r) => r,
Err(e) => return eprintln!("{}", e),
};
println!("{}", r.report());
loop {
@bjjb
bjjb / Calling Rust from Crystal
Last active September 5, 2022 14:56
Calling Rust from Crystal
# Makefile
lib = target/debug/foo.dylib
app = bin/foo
all: $(app)
$(lib): src/lib.rs Cargo.toml
cargo build
$(app): $(lib) src/foo.cr
#!/usr/bin/env ruby
# frozen_string_literal: true
module ParseGitURL
SSH = /^(?:[^@]+)@([^:]+):(.+)/.freeze
HTTPS = %r{^https://([^/]+)/(.+)}.freeze
def parse(input)
case input
when SSH then "#{Regexp.last_match(1)} #{Regexp.last_match(2)}"