Recursion is a procedure that allows us to iterate through certain data structure. For example we can iterate through lists
sum : List Nat -> Nat
sum list =
<?php | |
final class Country | |
{ | |
private string $countryCode; | |
private function __construct(string $countryCode) | |
{ | |
$this->countryCode = $countryCode; | |
} |
<?php | |
declare(strict_types=1); | |
/** | |
* @template F | |
* @template A | |
* @extends Functor<F,A> | |
*/ | |
interface Apply extends Functor |
<?php | |
declare(strict_types=1); | |
namespace Marcosh\PhpValidationDSL; | |
final class Boolean | |
{ | |
/** @var Bool */ | |
private $isTrue; |
{-# LANGUAGE LambdaCase #-} | |
{-# LANGUAGE FunctionalDependencies #-} | |
{-# LANGUAGE MultiParamTypeClasses #-} | |
module Graph where | |
import Control.Comonad | |
-- we need to separate `a` and `b` because `a` is covariant while `b` is contravariant => this is actually a profuctor | |
data PointedGraph moves b a = PointedGraph |
{-# LANGUAGE AllowAmbiguousTypes #-} | |
{-# LANGUAGE MultiParamTypeClasses #-} | |
{-# LANGUAGE FlexibleInstances #-} | |
{-# LANGUAGE ScopedTypeVariables #-} | |
{-# LANGUAGE TypeApplications #-} | |
module NamedTypeclass where | |
import Prelude hiding (Monoid, mempty, (<>)) |
module Application where | |
import Data.Profunctor | |
newtype Application request response = Application {unApplication :: request -> IO response} | |
instance Profunctor Application where | |
dimap actOnRequest actOnResponse application = Application $ (fmap actOnResponse) . (unApplication application) . actOnRequest |
module Hanoi | |
import Data.Vect | |
data Peg | |
= First | |
| Second | |
| Third | |
-- TODO : can we do better here? |
PDO::FETCH_FUNC without validation | |
10: 0.001568078994751 | |
0.00071001052856445 | |
0.00085306167602539 | |
0.00087618827819824 | |
0.00083112716674805 | |
100: 0.0012631416320801 | |
0.0014598369598389 |
<?php | |
namespace MyTestNamespace; | |
//relevant use clauses | |
use ... | |
final class AddItemIntegrationTest extends \PHPUnit_Framework_TestCase | |
{ | |
public function testAddItem() |