Question: I am going through a book Lift in action and I encountered something I don't quite understand: **\_ ::**

```
object permanent_link extends MappedString(this, 150){
    override def validations =
    valMinLen(3, "Link URL must be at least 5 characters") _ ::
    super.validations
}

```

I can't find any hint so I would be grateful if anyone could help me out..

Answer: 
The underscore ignifies that valMinLen isn't to be called but be used as a function "pointer". 

The `::` operator concatenates lists.

It would in other words seem like the code builds a list `validations` that consist of a function "pointer" to `valMinLen` with the parameters given and the rest of the list is the value of `super.validations`, that is the super class' validations.

I'm sure someone will correct my terminology here :)
The code might be more readable with some proper indentation and introducing a val:

```
object permanent_link extends MappedString(this, 150) {

  override def validations = minimumValidation :: super.validations

  val minimumValidation = valMinLen(3,"Link URL must be at least 5 characters") _
}

```

So as noted before, the `::` operator just prepends a new element to a list, the `_` has nothing to do with it and is used to obtain a function object, like in

```
(1 :: 2 :: Nil) map (println _)

```

which makes a list [1, 2] and applies the function println to every element (the underscore can actually be omitted here). The object `println _` constructs a function object from the `println` method with the `_` representing the function's single parameter.