Lub dowolnej podobnej struktury danych o dynamicznej długości, która może być łatwo przeniesiona do tablicy. Jedyne obejście, które znalazłem, to wpisanie tablicy jako ciągu znaków i ręczne przeanalizowanie go.Czy można zadeklarować tablicę z konfiguracją?
config var not_array: string = '[1,2,3,4,5]' ;
proc main() {
// config array workaround
writeln("I am string. Definitely not array ", not_array) ;
// parse string
not_array = not_array.replace(' ','') ;
not_array = not_array.replace('[','') ;
not_array = not_array.replace(']','') ;
var still_not_array = not_array.split(',') ;
// prepare array
var dom = 0..#still_not_array.size ;
var array: [dom] real ;
// populate array
for (i, x) in zip(dom, still_not_array) {
array[i] = x:real ;
}
writeln("Ha! Tricked you, am actually array ", array) ;
}
Działa to zgodnie z przeznaczeniem, ale czy jest lepszy sposób?
One zawsze może zorganizować wejść nastąpić z pliku konfiguracyjnego (wspólny krok w taki konfigurowalnym, rurociąg zorganizowany obliczeń płynie). Czy mógłbyś wyjaśnić swoje faktyczne kryteria dla niewyraźnego, ale ważnego (gorszego, lepszego, lepszego) podejścia alternatywnego? Początkowy krok po kompilacji jest (i zawsze będzie) jednorazowym kosztem w obu wymiarach [TIME] i [SPACE] w realizacji procesu, więc czy chciałbyś wyraźnie podać także faktyczną ilościową funkcję kosztu/nagrody-metryczki, aby porównać dwa podejścia, aby rozwiązać już działającą koncepcję konfigurowalnego wejścia w czasie wykonywania? – user3666197
W tym momencie po prostu eksperymentuję z rysami Kaplicy. Interesowało mnie tylko to, czy możliwe było wprowadzanie tablic za pomocą wiersza poleceń, na przykład, skrypt interpolacji wielomianowej linii poleceń. Jak wyglądałoby podejście oparte na pliku konfiguracyjnym dla Chapel? – uqtredd1