¿Cómo puedo agregar un nuevo artículo a una matriz y hacer que la matriz actualizada con el nuevo elemento en F #? -- arrays campo con f# campo con append camp Relacionados El problema

How can i append a new item to an array and make the array updated with the new item in F#?


0
vote

problema

Español
  let source =  [|(CocaCola, bigBottle); (CocaCola, smallCup); (Tuborg, smallCup)|]   //the method can't store the updated array.  let  mkOrder (dr:liquid ,cont:Containment) = Array.append source [|(dr, cont)|]   

Hola, tengo un método aquí para agregar un nuevo elemento a la matriz de origen. Sin embargo, el método no almacena la matriz actualizada y, por lo tanto, solo funciona una vez que haya intentado varias diferentes, pero ninguna de ellas ha funcionado.

Original en ingles
let source =  [|(CocaCola, bigBottle); (CocaCola, smallCup); (Tuborg, smallCup)|]   //the method can't store the updated array.  let  mkOrder (dr:liquid ,cont:Containment) = Array.append source [|(dr, cont)|] 

Hello I have a method here to append a new item to the source array. However, the method doesn't store the updated array and thus, only works once I've tried multiple different but none of them has worked.

        

Lista de respuestas

0
 
vote
vote
La mejor respuesta
 

obviamente no muy idiomático F #, pero no dude en aclarar qué tipo de estructura de datos necesita y cómo desea usarlo:

  int0  

Val It: resizArray = seq [("Cocacola", "Bigbottle"); ("Cocacola", "Smallcup"); ("Tuborg", "Smallcup"); ("Cerveza", "XL")]

int1 es un alias para int222/int2, que es una matriz mutable y modable. Puede agregar, eliminar y hacer la mayoría de las cosas que necesitan con un int3 .

 

Obviously not very idiomatic F# but feel free to clarify on what kind of data structure you need and how you want to use it:

open System.Collections.Generic let source =  ResizeArray<string * string >( [("CocaCola", "bigBottle"); ("CocaCola", "smallCup"); ("Tuborg", "smallCup")]) source.Add("Beer", "XL") source 

val it : ResizeArray = seq [("CocaCola", "bigBottle"); ("CocaCola", "smallCup"); ("Tuborg", "smallCup"); ("Beer", "XL")]

ResizeArray is an alias for C#'s List which is a mutable and resizable array. You can add, remove and do most of the stuff need to with an IEnumerable.

 
 
1
 
vote

Las matrices F # son

colecciones de datos consecutivos de tamaño fijo, basado en cero elementos que son todos del mismo tipo

Entonces, esto significa que, si bien puede cambiar el valor del elemento en la posición n, no puede extender la matriz para tener más elementos. Entonces, ¿cuál es su función int4 es llevar su matriz int5 y creando una nueva matriz agregando el nuevo elemento, a menos que capte esta nueva matriz que se devuelve < Código> int6 se perderá. Si abre una ventana interactiva y prueba lo siguiente:

  int7  

El Anexo crea una nueva matriz: no actualiza la matriz existente.

La documentación de MS para las matrices de F # es aquí

 

The F# arrays are

fixed-size, zero-based, mutable collections of consecutive data elements that are all of the same type

So this means that while you can change the value of the element at position n you can't extend the array to have more elements. So what your mkOrder function is doing is taking your array source and creating a new array by appending the new element to it, unless you capture this new array that is returned by mkOrder it will be lost. If you open up an interactive window and try the following:

> let array1 = [| 1; 2; 3 |];; val array1 : int [] = [|1; 2; 3|]  > let array2 = Array.append array1 [|4|];; val array2 : int [] = [|1; 2; 3; 4|]  > array1;; val it : int [] = [|1; 2; 3|]  > array2;; val it : int [] = [|1; 2; 3; 4|] 

The append creates a new array - it doesn't update the existing array.

The MS documentation for F# arrays is here

 
 
   
   

Relacionados problema

0  Use JQUERY Inserterfter en la función existente que agregue la tabla  ( Use jquery insertafter in existing function that appends table ) 
Aquí es lo que tengo hasta ahora: http://jsfiddle.net/jakx/1/ Estoy tratando de que las células adjuntas vengan después del último tr6 . Además, estoy int...

0  Cambie la función JavaScript para editar celdas en lugar de agregarlas  ( Change javascript function to edit cells instead of append them ) 
Perdón por la vaguedad de mi pregunta. Déjame empezar desde cero. Actualmente tengo esto: http://jsfiddle.net/kmg4x/1/ < / p> y esta otra pregunta que pu...

3  Añadir a Websocket.ONMESSAY () ¿Cómo se agrega JQERY a los eventos?  ( Add to websocket onmessage like how jquery adds to events ) 
Estoy escribiendo una sola página WS ++ sitio, y me gustaría mantener mi código Agrupados primero por "Página" (creo que necesito una nueva palabra ya que n...

0  jquery puedo usar Anex / Appendto en esta función JavaScript  ( Jquery can i use append appendto in this javascript function ) 
He creado una función que agrega con éxito una tabla con filas / celdas y los llama de una matriz. El problema es que se están adjuntando a la parte superior ...

3  jquery .get> apéndice div  ( Jquery get append div to page ) 
Estoy tratando de implementar el script que carga automáticamente todo el contenido de la etiqueta en Tumblr. El código se ve así: if (is_int($("#page-coun...

1607  ¿Cómo redirigir y agregar tanto stdout como stderr a un archivo con bash?  ( How to redirect and append both stdout and stderr to a file with bash ) 
Para redirigir stdout a un archivo truncado en Bash, sé usar: cmd > file.txt Para redirigir stdout en bash, anexar a un archivo, sé usar: cmd >>...

1  ¿Cómo escribo scripts a la página con jQuery cuando ya está dentro de un guión?  ( How do i write scripts to the page with jquery when inside a script already ) 
Estoy construyendo un formulario de página web con JQERY APEND (), HTML (), etc. y estoy en el punto en que tengo que escribir el script que se muestra a cont...

0  ¿Puede algún programa leer un archivo de texto en el código C ++?  ( Can any programs read a text file into c code ) 
¿Es posible que un programa abra un archivo de texto y utilícelo como código C ++? ¿Si es así, cómo? ¿Qué sucede si un programa quería agregar el código de un...

3  Función JavaScript para agregar la tabla con las células que contienen campo de entrada y valor  ( Javascript function to append table with cells containing input field and value ) 
He creado una función de trabajo que agrega una tabla con células / filas y luego llama a esas células con datos de una matriz. El problema es que ahora neces...

2  Adjuntos de punteros a clase a un Qlist Qlist <Class *>  ( Appending pointers to class to a qlist qlistclass ) 
En mi MainWindow.H Tengo un Qlist M_QLServolist que debe almacenar punteros a los objetos servo: QList<Servo* > m_qlServoList; Cuando intento agregar u...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos