Esto funciona:¿Cómo "Aplicar" para los resultados de una función sin parámetros
List(3, 1, 2).sorted apply 1
res1: Int = 2
y esto funciona:
var x = List(3, 1, 2).sorted
x: List[Int] = List(1, 2, 3)
x(1)
res2: Int = 2
pero esto no lo hace:
List(3, 1, 2).sorted (1)
error: type mismatch;
found : Int(1)
required: Ordering[?]
List(3, 1, 2).sorted (1)
^
Y hasta paréntesis no muestran el analizador en lo que quiero:
(List(3, 1, 2).sorted)(1)
error: type mismatch;
found : Int(1)
required: Ordering[?]
(List(3, 1, 2).sorted)(1)
Parece una expresión natural. ¿Qué estoy haciendo mal?
'ordenados' no tiene parámetros: se necesita un parámetro implícito, que puede omitirse. Ese es el problema: su (1) se interpreta como un parámetro explícito para 'sorted' y no como un parámetro para el método apply de su valor de retorno, como en' List (1, 2, 3) .tail (0) ', que funciona bien. Lamentablemente, no sé si hay alguna solución. –
¿Has probado 'List (3, 1, 2) .sorted() (1)'? – Madoc
@Madoc: eso no funciona, no se puede omitir lo implícito al proporcionar una lista de parámetros vacía, el compilador se queja de un parámetro no especificado. –