Performing operations on custom data types?

Babra Cunningham

I have the following data type:

data Users = Height Int | Age Int 

I then have a list of ages:

myList = [Age 44, Age 54, Age 21, Age 34, Age 22]

Which I want to apply to this function:

myFunction :: [Users] -> [Users]
myFunction li = [x + 1 | x <- li]

However this causes the following error:

"No instance for (Num Users) arising from a use of ‘+’"

How can I make this work? Do I need to separate 'Age' from each of the values?

Schoon

First, the error message tells you that you are using the (+) function on Users, for which it is not defined.

So you could make Users an instance of Num, meaning that you also need to define (-), (*), negate,.. for Users, which seems odd.

Maybe you need something like this:

data User = User {height :: Int, age :: Int } deriving (Show)

addToHeight :: Int -> User -> User
addToHeight x (User h a) = User (h+x) a

then use:

let users = [User 180 20, User 185 22]
fmap (addToHeight 1) users

--

to leave semantics aside:

plus :: Int -> Users -> Users
plus x (Age a) = Age (a+x)
plus x (Height h) = Height (h+x)

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Accessing and performing operations on queryset data in Django

From Dev

Operations on different data types

From Dev

Haskell: arithmetic operations on data types

From Dev

Performing operations on multiple subsets within a data.frame (R)

From Dev

Custom Data Types Compression

From Dev

Performing assignment operations on an object

From Dev

Performing operations in a Pivot

From Dev

Performing bitwise operations on a dataframe

From Dev

Performing Mathematical Operations on kFirebaseServerValueTimestamp

From Dev

Performing Power Operations in Dictionaries

From Dev

Performing bitwise operations on a dataframe

From Dev

AngularJS: Performing $http request inside custom service and returning data

From Dev

VBA Custom Data Types - Defaults

From Dev

Filter in List with custom data types

From Dev

Filter in List with custom data types

From Dev

Custom ValidationAttribute for multiple data types

From Dev

Efficiently performing operations on Erlang Tuples

From Dev

Performing operations only on subset of a RDD

From Dev

Performing operations in dataframe and lists in R

From Dev

Performing operations on each line of a string

From Dev

Performing mathematical operations on a pandas dataframe

From Dev

JavaFX Compilation Warning - "uses unchecked or unsafe operations" - Raw Data Types?

From Dev

Custom data types using EclipseLink and Querydsl

From Dev

SQL, Get a list of all the custom data types

From Dev

Accessing functions for custom Haskell data types

From Dev

How to implement custom ordering for data types in Haskell?

From Dev

Haskell accessing fields in custom data types

From Dev

Json.NET Custom JsonConverter with data types

From Dev

Custom data-* types, css and javascript

Related Related

  1. 1

    Accessing and performing operations on queryset data in Django

  2. 2

    Operations on different data types

  3. 3

    Haskell: arithmetic operations on data types

  4. 4

    Performing operations on multiple subsets within a data.frame (R)

  5. 5

    Custom Data Types Compression

  6. 6

    Performing assignment operations on an object

  7. 7

    Performing operations in a Pivot

  8. 8

    Performing bitwise operations on a dataframe

  9. 9

    Performing Mathematical Operations on kFirebaseServerValueTimestamp

  10. 10

    Performing Power Operations in Dictionaries

  11. 11

    Performing bitwise operations on a dataframe

  12. 12

    AngularJS: Performing $http request inside custom service and returning data

  13. 13

    VBA Custom Data Types - Defaults

  14. 14

    Filter in List with custom data types

  15. 15

    Filter in List with custom data types

  16. 16

    Custom ValidationAttribute for multiple data types

  17. 17

    Efficiently performing operations on Erlang Tuples

  18. 18

    Performing operations only on subset of a RDD

  19. 19

    Performing operations in dataframe and lists in R

  20. 20

    Performing operations on each line of a string

  21. 21

    Performing mathematical operations on a pandas dataframe

  22. 22

    JavaFX Compilation Warning - "uses unchecked or unsafe operations" - Raw Data Types?

  23. 23

    Custom data types using EclipseLink and Querydsl

  24. 24

    SQL, Get a list of all the custom data types

  25. 25

    Accessing functions for custom Haskell data types

  26. 26

    How to implement custom ordering for data types in Haskell?

  27. 27

    Haskell accessing fields in custom data types

  28. 28

    Json.NET Custom JsonConverter with data types

  29. 29

    Custom data-* types, css and javascript

HotTag

Archive