// `fp-ts` training Exercice 3 // Sort things out with `Ord` import * as Option from 'fp-ts/lib/Option'; import { unimplemented } from '../utils'; /////////////////////////////////////////////////////////////////////////////// // SORT PRIMITIVE TYPES // /////////////////////////////////////////////////////////////////////////////// export const sortStrings: ( strings: ReadonlyArray, ) => ReadonlyArray = unimplemented; export const sortNumbers: ( numbers: ReadonlyArray, ) => ReadonlyArray = unimplemented; /////////////////////////////////////////////////////////////////////////////// // REVERSE SORT // /////////////////////////////////////////////////////////////////////////////// export const sortNumbersDescending: ( numbers: ReadonlyArray, ) => ReadonlyArray = unimplemented; /////////////////////////////////////////////////////////////////////////////// // SORT OPTIONAL VALUES // /////////////////////////////////////////////////////////////////////////////// export const sortOptionalNumbers: ( optionalNumbers: ReadonlyArray>, ) => ReadonlyArray> = unimplemented; /////////////////////////////////////////////////////////////////////////////// // SORT COMPLEX OBJECTS // /////////////////////////////////////////////////////////////////////////////// export interface Person { readonly name: string; readonly age: Option.Option; } export const sortPersonsByName: ( person: ReadonlyArray, ) => ReadonlyArray = unimplemented; export const sortPersonsByAge: ( person: ReadonlyArray, ) => ReadonlyArray = unimplemented; /////////////////////////////////////////////////////////////////////////////// // COMBINE SORTING SCHEMES // /////////////////////////////////////////////////////////////////////////////// export const sortPersonsByAgeThenByName: ( person: ReadonlyArray, ) => ReadonlyArray = unimplemented;