Plan 9 from Bell Labs’s /usr/web/sources/contrib/fernan/nhc98/src/prelude/Array/ArrayFun.hs

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


module Array where

import DArray
import Ix
import LowVector
import _E
import NHC.Internal (unsafePerformIO)

array :: (Ix a) => (a,a) -> [(a,b)] -> Array a b
array b ivs =
    if and [inRange b i | (i,_) <- ivs]
    then unsafePerformIO ( do
           v <- primNewVectorC (rangeSize b)
                               (_E (error "Array.!: undefined array element"))
           mapM_ (\(i,a)-> primUpdateVectorC (index b i) (_E a) v) ivs
           return (MkArray b v)
         )
    else error "Array.array: out-of-range array association"


Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].