Skip to content

Instantly share code, notes, and snippets.

View RaasAhsan's full-sized avatar

Raas Ahsan RaasAhsan

View GitHub Profile
@RaasAhsan
RaasAhsan / Main.scala
Created December 5, 2018 09:24
Advent of Code Day 5
def shorten(s: String): String = {
var input = s
var done = false
var i = 0
while (!done) {
val char = input.charAt(i)
val nextChar = input.charAt(i + 1)
if ((char.toChar - nextChar.toChar).abs.toInt == 32) {
@RaasAhsan
RaasAhsan / DTALC.scala
Last active July 31, 2018 15:57
data type a la carte in scala
object DTALC {
}
@RaasAhsan
RaasAhsan / ParserTesting.scala
Last active January 8, 2016 22:55
A tiny parser combinator library that supports sequencing.
package ch6
import scala.util.matching.Regex
object ParserTesting {
sealed trait ParseResult[+A, +F]
case class ParseSuccess[A](parsed: A, unparsed: String) extends ParseResult[A, Nothing]
case class ParseFailure[F](error: F) extends ParseResult[Nothing, F]
package xml;
import java.util.ArrayList;
import java.util.List;
import com.jantox.xmlparser.Scanner;
/*
* <xmlNode> ::= "<" ~ <name> ~ ">" ~ <body> ~ "</" ~ <name> ">"
* <letter> ::= [A-Za-z]
import React from 'react';
import deepcopy from 'deepcopy';
let RouterLink = React.createClass({
propTypes: {
to: React.PropTypes.string.isRequired,
params: React.PropTypes.object,
activeClassName: React.PropTypes.string
@RaasAhsan
RaasAhsan / Router.js
Created June 28, 2015 04:26
React router component for applications
import React from 'react';
class Router extends React.Component {
constructor(props) {
super(props);
this.state = {
routes: props.routes,
path: "index",
params: {}
data AST a = Value a | Operation (a -> a -> a) (AST a) (AST a)
evaluate :: (Num a) => (AST a) -> a
evaluate (Value a) = a
evaluate (Operation o a b) = evaluate a `o` evaluate b
@RaasAhsan
RaasAhsan / Writer.scala
Created January 11, 2014 07:15
A very simple Writer monad written in Scala.
class Writer[A](runWriter: (A, String)) {
def apply(x: (A, String)): Writer[A] = new Writer[A](x)
def run = runWriter
def flatMap[B](x: A => Writer[B]): Writer[B] = {
val (a: A, b: String) = runWriter
val (y: B, z: String) = x(a).run
@RaasAhsan
RaasAhsan / gist:4552530
Created January 17, 2013 00:50
my description of a vector
package com.jantox.dungmast;
public class Vector2D {
public double x, y;
public Vector2D() {
x = y = 0;
}
@RaasAhsan
RaasAhsan / gist:4083992
Created November 16, 2012 04:14
pitch/yaw to directional vector
// pitch and yaw are in degrees
Vector3D getDirectionVector() {
return new Vector3D(-Math.cos(pitch * Math.PI / 180.0) * Math.sin(yaw * Math.PI / 180.0), Math.sin(pitch * Math.PI / 180.0), -Math.cos(pitch * Math.PI / 180.0) * Math.cos(yaw * Math.PI / 180.0));
}