This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func intDiv(num: Int, den: Int) -> Int? { | |
switch den { | |
case 0: return nil | |
default: return num/den | |
} | |
} | |
let x = intDiv(5, 2) | |
let y = intDiv(4, 0) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/********************************************************************* | |
* rational.h - Rational type | |
*/ | |
#include <cstdio> | |
#include <ostream> | |
#include <string> | |
class Rational { | |
public: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* gcc == gcc (Debian 4.7.2-5) 4.7.2 | |
* clang == Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn) | |
* | |
* CXXFLAGS="-Wall -Werror -Wextra -Wconversion -Weffc++ -pedantic -fno-builtin" | |
* | |
* NOTES: | |
* The only fault caught at runtime is the final set of statements, all of which involve | |
* dereferencing a literal (or macro or const var equal to) zero. This case is ONLY caught | |
* by clang using the -Wnull-dereference check. GCC did not catch any of these. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class a100 {class a99 {class a98 {class a97 {class a96 {class a95 {class a94 {class a93 {class a92 {class a91 {class a90 {class a89 {class a88 {class a87 {class a86 {class a85 {class a84 {class a83 {class a82 {class a81 {class a80 {class a79 {class a78 {class a77 {class a76 {class a75 {class a74 {class a73 {class a72 {class a71 {class a70 {class a69 {class a68 {class a67 {class a66 {class a65 {class a64 {class a63 {class a62 {class a61 {class a60 {class a59 {class a58 {class a57 {class a56 {class a55 {class a54 {class a53 {class a52 {class a51 {class a50 {class a49 {class a48 {class a47 {class a46 {class a45 {class a44 {class a43 {class a42 {class a41 {class a40 {class a39 {class a38 {class a37 {class a36 {class a35 {class a34 {class a33 {class a32 {class a31 {class a30 {class a29 {class a28 {class a27 {class a26 {class a25 {class a24 {class a23 {class a22 {class a21 {class a20 {class a19 {class a18 {class a17 {class a16 {class a15 {class a14 {class a13 {class a12 {class a11 {class a10 {class a9 {class a8 {cl |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "timer.hh" | |
#include <cstdio> | |
#include <map> | |
#include <string> | |
#include <stdint.h> | |
using std::map; | |
using std::string; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <cstdio> | |
class A { void foo() {} }; | |
class B { virtual void foo() {} }; | |
int main() | |
{ | |
A a1; | |
B b1, b2; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// -*- mode: c++ -*- | |
template <typename T> | |
class Maybe { | |
public: | |
static Maybe<T> Nothing(); | |
static Maybe<T> Just(T&); | |
virtual bool isJust() const = 0; | |
virtual bool isNothing() const = 0; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.file "hw5ex1.c" | |
.text | |
.globl main | |
.align 16, 0x90 | |
.type main,@function | |
main: # @main | |
.cfi_startproc | |
# BB#0: # %entry | |
movabs RAX, 51966 | |
mov DWORD PTR [RSP - 4], 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Rational.cs - fraction class with basic math and some overloaded operators | |
using System; | |
public class Rational | |
{ | |
private int numerator; | |
private int denominator; | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(* Rational.fs - provides Rational type *) | |
type Rational(num:int, denom:int) = | |
let rec calcGCD(a, b) = if b = 0 then a else calcGCD(b, a%b) | |
let gcd = calcGCD(num, denom) | |
let (numerator, denominator) = (num / gcd, denom / gcd) | |
member r.Numerator = numerator | |
member r.Denominator = denominator | |
member r.MixedNumerator = numerator % denominator |