| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Data.Discrimination.Class
Contents
- class Decidable f => Discriminating f where
- disc :: f a -> [(a, b)] -> [[b]]
- joining :: Discriminating f => f d -> ([a] -> [b] -> c) -> (a -> d) -> (b -> d) -> [a] -> [b] -> [c]
- inner :: Discriminating f => f d -> (a -> b -> c) -> (a -> d) -> (b -> d) -> [a] -> [b] -> [[c]]
- outer :: Discriminating f => f d -> (a -> b -> c) -> (a -> c) -> (b -> c) -> (a -> d) -> (b -> d) -> [a] -> [b] -> [[c]]
- leftOuter :: Discriminating f => f d -> (a -> b -> c) -> (a -> c) -> (a -> d) -> (b -> d) -> [a] -> [b] -> [[c]]
- rightOuter :: Discriminating f => f d -> (a -> b -> c) -> (b -> c) -> (a -> d) -> (b -> d) -> [a] -> [b] -> [[c]]
Documentation
class Decidable f => Discriminating f where Source
Instances
Joins
Arguments
| :: Discriminating f | |
| => f d | the discriminator to use |
| -> ([a] -> [b] -> c) | how to join two tables |
| -> (a -> d) | selector for the left table |
| -> (b -> d) | selector for the right table |
| -> [a] | left table |
| -> [b] | right table |
| -> [c] |
O(n). Perform a full outer join while explicit merging of the two result tables a table at a time.
The results are grouped by the discriminator.
Arguments
| :: Discriminating f | |
| => f d | the discriminator to use |
| -> (a -> b -> c) | how to join two rows |
| -> (a -> d) | selector for the left table |
| -> (b -> d) | selector for the right table |
| -> [a] | left table |
| -> [b] | right table |
| -> [[c]] |
O(n). Perform an inner join, with operations defined one row at a time.
The results are grouped by the discriminator.
This takes operation time linear in both the input and result sets.
Arguments
| :: Discriminating f | |
| => f d | the discriminator to use |
| -> (a -> b -> c) | how to join two rows |
| -> (a -> c) | row present on the left, missing on the right |
| -> (b -> c) | row present on the right, missing on the left |
| -> (a -> d) | selector for the left table |
| -> (b -> d) | selector for the right table |
| -> [a] | left table |
| -> [b] | right table |
| -> [[c]] |
O(n). Perform a full outer join with operations defined one row at a time.
The results are grouped by the discriminator.
This takes operation time linear in both the input and result sets.
Arguments
| :: Discriminating f | |
| => f d | the discriminator to use |
| -> (a -> b -> c) | how to join two rows |
| -> (a -> c) | row present on the left, missing on the right |
| -> (a -> d) | selector for the left table |
| -> (b -> d) | selector for the right table |
| -> [a] | left table |
| -> [b] | right table |
| -> [[c]] |
O(n). Perform a left outer join with operations defined one row at a time.
The results are grouped by the discriminator.
This takes operation time linear in both the input and result sets.
Arguments
| :: Discriminating f | |
| => f d | the discriminator to use |
| -> (a -> b -> c) | how to join two rows |
| -> (b -> c) | row present on the right, missing on the left |
| -> (a -> d) | selector for the left table |
| -> (b -> d) | selector for the right table |
| -> [a] | left table |
| -> [b] | right table |
| -> [[c]] |
O(n). Perform a right outer join with operations defined one row at a time.
The results are grouped by the discriminator.
This takes operation time linear in both the input and result sets.