Skip to content

Instantly share code, notes, and snippets.

View sshine's full-sized avatar
🦀

Simon Shine sshine

🦀
View GitHub Profile
#!/usr/bin/env tclsh
proc sum {k m n e} {
set r 0
for {set k $m} {$k < $n} {incr k} {
set r [expr {$r + [uplevel 1 [list set k $k]; uplevel 1 $e]}]
}
return $r
}
set test [sum k 1 5 {expr {pow($k, 2)}}]
@sshine
sshine / CollatzConjecture.hs
Created November 28, 2018 06:17
Benchmarking CollatzConjecture
{-# LANGUAGE BangPatterns #-}
module CollatzConjecture ( collatz
, collatz1
, collatz2
, collatz3
, collatz4
, collatz5
) where
import Data.List (genericLength, elemIndex)
@sshine
sshine / before.rs
Last active September 26, 2022 22:36
use nom::bytes::complete::*;
use nom::error::ParseError;
use nom::sequence::tuple;
use nom::InputTakeAtPosition;
use nom::{error::VerboseError, IResult};
fn main() {
let a: ParseResult<()> = skip_whitespace(" hello");
println!("Parse result: {:?}", a);
}
use num_traits::{Zero, One};
use std::ops::{AddAssign};
fn enumerate_generic<T>() -> impl Iterator<Item = T>
where
T: Clone + Zero + One + AddAssign,
{
let mut curr = T::zero();
std::iter::repeat_with(move || {
let next = curr.clone();